클래스의 인스턴스를 복사하는 방법은 무엇인가요?
- 얕은 복사 (Shallow Copy): 클래스의 인스턴스를 단순히 참조하는 것이 아니라 데이터를 복사하는 방법입니다. 이 경우에는 새로운 인스턴스가 생성되지만, 내부에 참조형이 있는 경우에는 원본과 복사본이 같은 객체를 참조할 수 있습니다. 얕은 복사는
copy
메서드를 사용하여 수행할 수 있습니다.
import copy
class MyClass:
def __init__(self, data):
self.data = data
original = MyClass([1, 2, 3])
copied = copy.copy(original)
- 깊은 복사 (Deep Copy): 클래스의 인스턴스와 참조형 데이터까지 모두 복사하는 방법입니다. 이 경우에는 새로운 인스턴스와 새로운 참조 객체가 생성되어 원본과 독립적으로 동작합니다. 깊은 복사는
deepcopy
메서드를 사용하여 수행할 수 있습니다.
import copy
class MyClass:
def __init__(self, data):
self.data = data
original = MyClass([1, 2, 3])
copied = copy.deepcopy(original)
얕은 복사와 깊은 복사는 복사 방법에 따라 처리 속도와 메모리 사용량이 다를 수 있으므로 상황에 맞게 선택해야 합니다. 복사된 인스턴스와 원본 인스턴스가 서로 영향을 주지 않는 것을 원한다면 깊은 복사를 사용하는 것이 좋습니다.
더 자세한 내용은 Python 공식 문서를 참조해 주세요.