이것은 파이썬을 배우는 두 번째 날입니다 (C ++와 OOP의 기초를 알고 있습니다.). 파이썬의 변수에 대해 약간의 혼란이 있습니다.
현재 내가 이해하는 방법은 다음과 같습니다.
파이썬 변수는 객체 (변경 가능하거나 변경 불가능한)에 대한 참조 (또는 포인터?)입니다. 와 같은 것이 있으면 num = 5
불변 객체 5
가 메모리 어딘가에 생성되고 이름-객체 참조 쌍이 num
특정 네임 스페이스에 생성됩니다. 가 있으면 a = num
아무것도 복사되지 않지만 이제 두 변수가 동일한 객체를 참조 a
하고 동일한 네임 스페이스에 추가됩니다.
이것이 제 책인 Automate the boring stuff with Python 에서 저를 혼란스럽게합니다. 초보자 용 책이므로 객체, 네임 스페이스 등을 언급하지 않고 다음 코드를 설명하려고합니다.
>>> spam = 42
>>> cheese = spam
>>> spam = 100
>>> spam
100
>>> cheese
42
그것이 제공하는 설명은 C ++ 책의 설명과 똑같습니다. 객체에 대한 참조 / 포인터를 다룰 때 만족스럽지 않습니다. 따라서이 경우 정수가 불변이므로 세 번째 줄에서 spam
완전히 새로운 포인터 / 참조가 메모리의 다른 위치에 할당됩니다. 즉, 처음에 가리키는 메모리가 수정되지 않았습니다. 따라서에서 cheese
참조하는 초기 객체를 참조했습니다 spam
. 이것이 올바른 설명입니까?