더북(TheBook)

15.6 복제하기

별칭을 사용하면 한쪽에서의 변경이 다른 쪽에서 예상하지 못한 결과로 이어질 수 있어서 프로그램이 읽기 어려워질 수 있다. 주어진 객체를 참조하는 변수를 모두 추적하는 것은 어렵다.

객체 복제는 종종 별칭의 대안으로 쓰인다. copy 모듈에는 모든 객체를 복제할 수 있는 copy 함수가 포함되어 있다.

>>> p1 = Point()

>>> p1.x = 3.0

>>> p1.y = 4.0

 

>>> import copy

>>> p2 = copy.copy(p1)

p1p2는 같은 데이터를 담고 있지만, 같은 Point 객체는 아니다.

>>> print_point(p1)

(3, 4)

>>> print_point(p2)

(3, 4)

>>> p1 is p2

False

>>> p1 == p2

False

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.