이 질문은 매우 구체적인 질문은 아니지만 몇 가지 예를 들려 줄 수 있습니다. 변수가 새로운 객체를 가리키는 시점을 알지 못하거나 두 객체가 동일한 객체를 가리키는 경우를 알지 못하기 때문에 Python을 매우 두려워합니다.같은 객체에 변수를 할당하는 것과는 반대로 Python에서 새로운 객체를 생성하는 방법을 알고 자 할 때
예를 들어 I는 다음과 같이 할당 무서워 : 나는 self.value을 변경하면 번호를 변경하지 않으이 경우
def function(self):
number = self.value
return number
.
또한 단지 복사 목록 좋아 : 나는 목록을 변경하는 경우이 경우
list = [1,2,3]
list2 = list
는,리스트 2는 바람직하지 않은 변경됩니다. 왜 내가 새로운 변수가되고 싶지 않으면 그것을 복사 할까?
어쨌든이 경우 새 변수를 만드는 안전한 방법을 아는 사람이 있는지 궁금한 점이 있거나 새로운 개체가 만들어 질 때와 두 변수가 같은 개체를 가리키는 경우에 대한 완전한 설명이 포함되어 있는지 궁금합니다. 나는 코드가 크고 앉아서 어떤 변수가 변경되었는지 그리고 모든 계산 후에 어떤 변수가 없는지를 확인할 수 없기 때문에 항상 코드를 작성하고 걱정하지 않으려 고합니다.
질문은 질문에 대한 링크 있도록 가변성과 불변성 관련이있다 : Immutable vs Mutable types, 좋을 수도 있지만, 이것은 일부 도움이 될 수있는 질문의 또 다른 방법입니다. 또한 이것은 돌연변이를 피하는 데 더 중점을 둡니다.
단순 규칙 : 할당 ** 절대로 ** 새 개체를 만듭니다. 할당 후에 항상 왼쪽의 이름은 오른쪽의 객체를 참조하기 만합니다. –
그래서 항상 새로운 변수 A에 값을 할당해야합니다. 그런 다음 변수 B의 값을 A에 할당 할 수 있습니다. 그러면 객체의 복사본이 항상 생성됩니까? –
[Immutable vs Mutable types] 가능한 복제본 (https://stackoverflow.com/questions/8056130/immutable-vs-mutable-types) – jwodder