앝은 복사와 깊은 복사
얕은 복사
- Shallow Copy
- 객체 복사 시 참조값만 복사
- 원본 객체와 복사본 객체가 같은 메모리 주소를 가리킴
- 한 객체를 수정할 경우 다른 객체에도 반영됨
- 파이썬 : copy 모듈의 copy 함수로 복사 가능
from copy import copy
a = [1, 2, 3]
shallow_copy_a = copy(a)
# [1, 5, 3]
a[1] = 5
# [1, 5, 3]
print(shallow_copy_a)
깊은 복사
- 메모리 공간을 새로 할당하여 복사
- 원본 객체와 복사본 객체가 다른 주소를 가리킴
- 한 객체를 수정해도 다른 객체에 영향을 끼치지 않음
- 파이썬 : copy 모듈의 deepcopy 함수로 복사 가능
from copy import deepcopy
a = [1, 2, 3]
deepcopy_a = deepcopy(a)
# [1, 5, 3]
a[1] = 5
# [1, 2, 3]
print(deepcopy_a)
- 출처 : 클린 코드 이제는 파이썬이다 - 알 스웨이가트 지음
함수와 메소드 차이
함수