Notice
Recent Posts
Recent Comments
Code IT
Python - 객체복사 (얕은 복사/깊은 복사) 본문
# 파이썬에서 원시값을 가지는 일반 변수를 제외한 나머지 객체들은 모두 메모리를 공유한다. # 원시값을 가지는 일반 변수 a = 10 b = a print(a, b) a = 20 print(a, b) # 메모리를 가지는 객체 instance list_a = [1, 2, 3] list_b = list_a # 메모리 공유 print(list_a, list_b) list_a[0] = 9 # 메모리의 원소값 변경 print(list_a, list_b) # 객체의 메모리를 재할당 할 경우 메모리를 복사되지 않는다. list_c = [1, 2, 3] list_d = list_c print(list_c, list_d) list_c = [4, 5, 6] print(list_c, list_d) # 복사에는 얕은 복사(Sallow Copy)와 깊은 복사(Deep Copy)가 있다. # Sallow Copy는 객체의 메모리를 공유하는 것으로 위의 복사와 같다. # Deep Copy는 객체내의 원소값을 복사해 메모리를 분리시키는 복사다. # Deep Copy는 Python의 copy모듈을 통해 가능하다. import copy list_e = [1, 2, 3] # Sallow Copy는 copy.copy()로 사용한다. list_f = copy.deepcopy(list_e) print(list_e, list_f) list_e[0] = 100 print(list_e, list_f)
'Python & Django' 카테고리의 다른 글
Python - 함수 (0) | 2019.01.30 |
---|---|
Python - bool (0) | 2019.01.30 |
Python - list, set, tuple, dict (0) | 2019.01.30 |
Python - dictionary (dict) (0) | 2019.01.30 |
Python - tuple (0) | 2019.01.30 |
Comments