728x90
* 파이썬 정리(1) 부터 이후 내용들의 예시들은 윤성우님의 열혈파이썬을 참고했습니다.
얕은 복사와 깊은 복사
파이썬은 기본적으로 '얕은 복사'를 진행한다.
'얕은 복사'란 객체를 복사할 때, 자료형이 mutable, immutable 중 어느 것이더라도 같은 객체를 참조하게 되는 것이다. '얕은 복사'를 진행하게 된다면 원본과 복사본은 동일 객체를 참조한다. 결과적으로 원본이나 복사본 중 하나를 수정한다면 나머지 다른 것도 수정이 된다.
employee1 = ['computer science', ('male', 'master'), [32, "02"]]
copy_employee1 = list(employee1)
employee1[2][0] += 2
print(employee1) #['computer science', ('male', 'master'), [34, '02']]
print(copy_employee1) #['computer science', ('male', 'master'), [34, '02']]
'깊은 복사'란 immutable객체에서 진행되어, 결과적으로 복사본을 수정해도 원본을 유지할 수 있게 된다.
'깊은 복사'를 하기 위해서는 copy모듈의 deepcopy 함수를 사용한다.
import copy
employee1 = ['computer science', ('male', 'master'), [32, "02"]]
deepcopy_employee1 = copy.deepcopy(employee1)
employee1[2][0] += 2
print(employee1) #['computer science', ('male', 'master'), [34, '02']]
print(deepcopy_employee1) #['computer science', ('male', 'master'), [32, '02']]
728x90
'# Programming Language > Python' 카테고리의 다른 글
[Python] 파이썬 정리(3)_제너레이터 함수/표현식 (0) | 2021.03.25 |
---|---|
[Python] 파이썬 정리(2)_iterator/컴프리헨션/람다/map/filter (0) | 2021.03.23 |
[Python] 파이썬 게임 라이브러리_PyGame 도형그리기 (0) | 2021.01.19 |
[Python] 파이썬 게임 라이브러리_PyGame 설명과 다운(파이참) (0) | 2021.01.19 |
[Python] 파이썬 기본_연산자/데이터형/데이터구조/제어문/함수 (0) | 2021.01.18 |