Assignment 대 얕은 복사에 대한 깊은 복사에서는 파이썬

얕은 사본

얕은 복사본을 생성하는 새로운 복합체라면(가능한 범위까지)삽입한 참조로 그것을 개체를 발견했습니다.

우리는 세 가지 다른 방법을 만드는 복사본:

여기에,모든 위 목록에 포함되는 동일한 값으로 원래의 목록:

>>> print(nums == m1 == m2 == m3)
True

그러나, 메모리 주소의 각각은 다릅니다.,즉,이번에는 각 목록의 객체에 고유 한 독립적 인 메모리 주소가 있음을 의미합니다.

이제 우리는 더 흥미로운 부분으로 이동합니다. 는 경우 원래의 목록은 복합체(예를 들어 목록),다음은 후 복사본,새로운 목록 요소는 여전히 원래 요소입니다.따라서 목록과 같이 변경 가능한 요소를 수정하면 변경 사항이 원래 요소에 반영됩니다., 보자에 아래 예에서 더 나은 이해를 얻기 위해

에서 보는 바와 같이,위의 예는 동안에 우리는 수정하는 내 목록 요소에서 새로운 목록은,그것의 업데이트 에서 원래의 목록은, 기 때문에ab는 여전히 동일한 메모리 주소(원래 목록).

그리고,새로운 listb는 그것의 자신의 메모리 주소는 아니지만 요소하지 않습니다., 얕은 복사에서는 목록의 요소를 새 객체에 복사하는 대신 단순히 참조를 해당 메모리 주소에 복사하기 때문입니다.따라서 원래 객체를 변경하는 동안 복사 된 객체에 반영되고 그 반대도 마찬가지입니다.이것은 얕은 사본의 특징입니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다

도구 모음으로 건너뛰기