변수명 = 변수에 저장할 값
레퍼런스 카운트
[a, b, c는 정말 같은 객체를 가리키는 걸까?]
파이썬에는 입력한 자료형에 대한 참조 개수를 알려주는 sys.getrefcount라는 함수가 있다. 이 함수를 이용해 3이라는 정수형 객체에 참조 개수가 몇 개 있는지 살펴보자.
>>> import sys
>>> sys.getrefcount(3)
30
변수 없애기
a=3을 입력하면 3이라는 정수형 객체가 메모리에 생성된다고 했다. 그렇다면 이 값을 메모리에서 없앨 수 있을까? 3이라는 객체를 가리키는 변수들의 개수를 레퍼런스 카운트라고 하였는데, 이 레퍼런스 카운트가 0이 되는 순간 3이라는 객체는 자동으로 사라진다. 즉, 3이라는 객체를 가리키고 있는 것이 하나도 없을 때 3이라는 객체는 메모리에서 사라지게 되는 것이다. 이것을 어려운 말로 가비지 콜렉션(Garbage collection, 쓰레기 수집)이라고도 한다.
다음은 특정한 객체를 가리키는 변수를 없애는 예이다.
>>> a = 3
>>> b = 3
>>> del(a)
>>> del(b)
리스트를 변수에 넣고 복사하기
a = [1,2,3]
b = a
a[1] = 4
print(a)
print(b)
a, b 가 같은 값이 나옴
a = [1,2,3]
b = a [:]
a[1] = 4
print(a)
print(b)
a, b 가 다른 값이 나옴 // b는 1번 인용만 한 것이기 때문에
*위의 예에서 b = copy(a)는 b = a[:]과 동일하다.
b is a
False