본문 바로가기

Python

Python 라이프 사이클과 reference count

728x90

참조 계수(Reference Count)

참조 계수란, 객체의 라이프 사이클(Life Cycle)을 관리하는 방법 중 하나로 객체를 참조하고 있는 횟수를 추적하는 지표다.

참조 계수가 0이 되면 해당 객체를 메모리에서 해제한다. 객체의 참조 계수를 보려면 sys 라이브러리의 getrefcount() 함수를 사용하면 된다.

import sys

num = 3
print(sys.getrefcount(num))
>> 33

 

3이라는 데이터가 담긴 객체를 33군데에서 참조하고 있다는 것이다.

그 33군데 중 num도 하나를 차지할 것이다.

 

class MyClass:
  pass

obj = MyClass() # reference count = 1
obj2 = obj # reference count = 2
del obj2 # reference count = 1

 

Reference count가 0이 되면 메모리에서 해당 객체는 삭제된다.