refcounts가 어떻게 파이썬에서 작동하는지 이해하려고합니다. 누군가가 그 객체의 단지 1 인스턴스 인 경우 카운트가 2로 인쇄되는 이유를 설명 할 수 있습니까? (때문에 getrefcount 방법에 전달 임시 존재의 그것입니까?) 또한 왜 수 많은 회원에서 호출 할 때 호출 할 때 (자기 참조 refcount가 범핑입니까?) 내재적 기준 단위는 사방이 있습니다Refcount python objects
import sys
class A:
def print_ref_count(self):
print sys.getrefcount(self)
a = A()
print sys.getrefcount(a) # prints 2
a.print_ref_count() # prints 4
print sys.getrefcount(a) # prints 2
사이드 노트 : ref 카운트 1을 얻는 것이 가능합니다. 오브젝트를 참조 카운트 할 목적으로 만 오브젝트를 작성하면됩니다. 오브젝트는 오브젝트를 저장할 때 변경할 수없는 리터럴이 될 수 없습니다. 함수의 상수, 빈'tuple '또는 불변 리터럴의 비어 있지 않은 튜플 등). 그래서'sys.getrefcount (A())'는 sys.getrefcount (''. join (('', 'b', 'c')))' 피 억류자를 피하십시오.) 어느 쪽도 도움이되지는 않지만. – ShadowRanger