source code

Lib/copy.py


Intro

a = 'python'과 같이 파이썬이 변수에 어떤 객체를 할당 할 때에는 객체의 사본을 만들지 않고 이름만 연결을 하게됩니다. 따라서, 만약 할당되는 객체가 변경할 수 없는 객체(Immutable)라면 일반적인 할당으로도 의도한대로 동작합니다.

반면, 변경 가능한 객체 또는 변경 가능한 객체의 컬렉션을 다룰 때는 단순히 할당문을 이용하여 할당을 할 경우 의도한대로 코드가 동작하지 않을 수 있습니다.


interface

copy.copy(x)

x의 얕은 사본을 반환한다.

copy.deepcopy(x)

x의 깊은 사본 반환한다.


description

이 둘의 차이점은 복합 객체(리스트 또는 클래스 인스턴스들과 같은 다른 객체를 포함한 객체)에만 유효하다.

깊은 복사 연산은 얕은 복사 연산에는 없는 두 가지 문제가 있습니다