>백엔드 개발 >파이썬 튜토리얼 >Python 변수: 참조 또는 포인터?

Python 변수: 참조 또는 포인터?

Barbara Streisand
Barbara Streisand원래의
2024-12-04 17:40:12534검색

Python Variables: References or Pointers?

Python 변수 이해: 참조와 포인터

일반적으로 Python의 변수는 포인터일 뿐이라고 가정합니다. 그러나 더 깊이 이해하면 이것이 완전히 정확하지 않다는 것이 드러납니다.

다음 코드 조각을 고려하십시오.

i = 5
j = i
j = 3
print(i)

변수가 포인터라는 가정에 따라 출력은 다음과 같을 것으로 예상할 수 있습니다. 3, j에 저장된 포인터가 재할당되었다고 가정합니다. 그러나 실제 출력은 5입니다.

이 불일치를 해결하려면 Python의 변수가 전통적인 의미의 포인터가 아니라는 점을 인식하는 것이 중요합니다. 대신 메모리에 있는 객체에 대한 참조 역할을 합니다.

Python의 참조

참조는 객체를 가리키는 메모리 위치입니다. 정수(예: i = 5)와 같은 기본 데이터 유형의 경우 변수는 실제 값을 저장합니다. 그러나 목록(예: i = [1,2,3])과 같은 변경 가능한 객체의 경우 변수는 객체에 대한 참조를 메모리에 저장합니다.

객체 유형에 따른 동작

새 변수(예: j)에 기존 변수(예: i)에 대한 참조가 할당되면 두 변수 모두 동일한 기본 변수를 가리킵니다. 물체. 두 변수 중 하나를 통해 변경된 사항은 두 변수 모두에 반영됩니다.

목록의 예

다음 코드 조각을 고려하세요.

i = [1,2,3]
j = i
i[0] = 5
print(j)

이 경우 출력은 [5,2,3]입니다. 이는 인덱스 0의 목록 요소가 i를 통해 수정되면 둘 다 동일한 목록을 참조하므로 j에도 변경 사항이 반영됨을 보여줍니다.

결론

Python의 변수는 포인터가 아닌 참조로 작동합니다. 여러 변수가 동일한 개체를 가리킬 수 있으므로 데이터 공유와 효율적인 메모리 사용이 가능합니다. Python에서 효과적인 프로그래밍을 위해서는 이 개념을 이해하는 것이 필수적입니다.

위 내용은 Python 변수: 참조 또는 포인터?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.