여태까지 써본적 없는 언어의 단점은 라이브러리를 잘 모른다는 것에 있는 것같다.

C++ 나 자바를 썼을 때와 다른 방식으로 코드를 짜야하는 것과 별개로 함수부터 다른 것이 낯설게 느껴지면서 오히려 다르니까 재밌기도 하다.

copy 방법 중에 얇은 복사라 불리는 shallow copy 그리고 깊은 복사라 불리는 Deep copy를 비교해보려한다.

shallow copy는 같은 주소를 사용하는 방식이다.

그러므로 다음과 같이 a = b (얕은 복사) 를 할 경우 a 를 변경하면 b 도 같이 변경되게 된다.


>>> import copy
>>> a = [1,2,3]
>>> b = a
>>> print (b)
[1, 2, 3]
>>> print (a)
[1, 2, 3]
>>> a.append(5)
>>> print (a)
[1, 2, 3, 5]
>>> print (b)
[1, 2, 3, 5]
>>> a[0] = 4
>>> print (a)
[4, 2, 3, 5]
>>> print (b)
[4, 2, 3, 5]

반면 deep copy 깊은 복사의 경우는 완전히 새로운 공간에 값을 만드는 것이다.


>>> c = copy.deepcopy(a)
>>> print (c)
[4, 2, 3, 5]
>>> c.append(10)
>>> print (c)
[4, 2, 3, 5, 10]
>>> print (a)
[4, 2, 3, 5]

'개발자로 살아남기 > Django' 카테고리의 다른 글

day 0. Python 이해하기  (0) 2019.08.28

+ Recent posts