15.6 복제하기
별칭을 사용하면 한쪽에서의 변경이 다른 쪽에서 예상하지 못한 결과로 이어질 수 있어서 프로그램이 읽기 어려워질 수 있다. 주어진 객체를 참조하는 변수를 모두 추적하는 것은 어렵다.
객체 복제는 종종 별칭의 대안으로 쓰인다. copy 모듈에는 모든 객체를 복제할 수 있는 copy 함수가 포함되어 있다.
>>> p1 = Point()
>>> p1.x = 3.0
>>> p1.y = 4.0
>>> import copy
>>> p2 = copy.copy(p1)
p1과 p2는 같은 데이터를 담고 있지만, 같은 Point 객체는 아니다.
>>> print_point(p1)
(3, 4)
>>> print_point(p2)
(3, 4)
>>> p1 is p2
False
>>> p1 == p2
False