大家讲道理2017-04-18 09:25:15
b=a
은 b
이 a
에서 참조하는
a[:]
은 a의 복사본을 생성하므로 b=a[:]
는 b
가 이 복사본을 참조하도록 합니다. 즉, b
과 a
는 이제 서로 다른 개체를 참조하지만 두 개체가 동일합니다(동일하지는 않지만 동일함)
그래서 겉보기에는 둘 사이에 차이가 없어 보이지만, 전자라면 b
이나 a
을 바꾸면 둘 다 영향을 받습니다. 왜냐하면 둘 다 같은 객체를 참조하기 때문입니다. 후자는 서로 다른 객체를 참조하기 때문에 서로 영향을 미치지 않습니다. @hsfzxjy의 예는 이를 지적하는 것이며, 실험을 통해 차이점을 배울 수 있습니다.
내가 답변한 질문: Python-QA
PHP中文网2017-04-18 09:25:15
파이썬에는 객체의 주소를 알아낼 수 있는 id라는 함수가 있는데, 출력해 보면 알 수 있습니다. Direct =는 원래 객체를 참조하는 참조 할당이고, [:]는 새로운 객체를 생성하는 재유도입니다.
으아악