Python 참조 변수
Python에서는 변수에 값을 할당하면 해당 값에 대한 참조가 생성됩니다. 그러나 C와 같은 언어와 달리 Python 변수는 실제 값 자체를 보유하지 않습니다. 대신 메모리의 다른 곳에 저장된 객체를 참조합니다.
불변성의 문제
다음 Python 코드를 고려하세요.
<code class="python">y = 7 x = y x = 8</code>
실행 후 이 코드에서 y는 7로 유지되고 x는 8이 됩니다. 이는 x와 y가 서로 다른 개체에 대한 참조이기 때문입니다. x에 새 값이 할당되면 더 이상 y와 동일한 객체를 참조하지 않습니다.
C 참조 변수와 Python 참조
C에서 참조 변수는 다음을 제공합니다. 변수를 값으로 전달하는 대신 사용할 수 있습니다. 참조 변수는 기존 변수에 대한 별칭입니다. 즉, 참조 변수에 대한 모든 변경 사항은 참조 변수에도 반영됩니다.
제공된 C 예에서:
<code class="cpp">int y = 8; int &x = y; x = 9;</code>
y 및 x는 둘 다 동일한 객체에 대한 참조입니다. 따라서 x에 새 값을 할당하면 y의 값도 변경됩니다.
Python의 한계
불행히도 Python에는 다음과 같은 실제 참조를 생성하는 내장된 방법이 없습니다. 씨. 제공된 코드에 표시된 것처럼 변수를 다른 변수에 할당하여 참조를 생성하려고 하면 개별 개체에 대한 별도의 참조가 생성됩니다.
해결 방법
Python에서 C 참조의 동작을 고려하면 원하는 값에 대한 참조 역할을 하는 사용자 정의 클래스를 만들 수 있습니다. 예:
<code class="python">class Reference: def __init__(self, val): self.value = val def get(self): return self.value def set(self, new_value): self.value = new_value # Usage: ref = Reference(7) x = ref.get() # x = 7 ref.set(8) # Both x and ref.get() will now be 8</code>
그러나 이 방법은 Python 참조의 실제 구현이 아닌 해결 방법입니다. 참조된 값을 수정하려면 get() 및 set() 메서드를 명시적으로 사용해야 합니다.
위 내용은 Python 변수가 C 참조 변수와 다른 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!