Python에서 =와 같은 할당 연산자는 객체의 복사본을 생성하지 않습니다. 대신, 메모리에 있는 기존 개체를 참조합니다. 이 동작은 다음 코드에서 볼 수 있듯이 의도하지 않은 결과를 초래할 수 있습니다.
dict_a = dict_b = dict_c = {} dict_c['hello'] = 'goodbye' print(dict_a) print(dict_b) print(dict_c)
예상 출력:
{} {} {'hello': 'goodbye'}
실제 출력:
{'hello': 'goodbye'} {'hello': 'goodbye'} {'hello': 'goodbye'}
여기서 예를 들어, 우리는 세 개의 독립적인 사전을 생성할 것으로 예상했습니다. 그러나 결과는 dict_a, dict_b 및 dict_c가 모두 동일한 사전 개체를 참조한다는 것을 보여줍니다. dict_c에 키를 할당하면 세 가지 변수 모두에 반영되는 공유 사전이 수정됩니다.
독립 복사본을 생성하는 원하는 동작을 달성하기 위해 Python은 몇 가지 옵션을 제공합니다.
dict_a = {1: 2} dict_b = dict_a.copy() dict_b[3] = 4 print(dict_a) print(dict_b)
출력:
{1: 2} {1: 2, 3: 4}
import copy dict_a = {1: 2, 'nested': {3: 4}} dict_b = copy.deepcopy(dict_a) dict_b['nested'][5] = 6 print(dict_a) print(dict_b)
출력:
{1: 2, 'nested': {3: 4}} {1: 2, 'nested': {3: 4, 5: 6}}
이러한 메서드를 사용하면 Python에서 개체 할당을 제어하고 공유 개체에 대한 의도하지 않은 수정을 방지할 수 있습니다.
위 내용은 Python의 개체 할당은 어떻게 작동하며 독립 복사본을 어떻게 만들 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!