반응형
파이썬에서 객체의 현재 참조 수를 얻는 방법이 있습니까?
파이썬에서 객체의 현재 참조 수를 얻는 방법이 있습니까?
파이썬에 따라 문서 의 sys모듈은 기능이 포함되어 있습니다
import sys
sys.getrefcount(object) #-- Returns the reference count of the object.
개체 arg temp 참조로 인해 일반적으로 예상보다 1이 높습니다.
gc가비지 수집기 내장에 대한 인터페이스 인 모듈을 사용하여를 gc.get_referrers(foo)참조하는 모든 목록을 가져 오기 위해 호출 할 수 있습니다 foo.
따라서 len(gc.get_referrers(foo))해당 목록의 길이, 즉 당신이 추구하는 리퍼러 수를 제공합니다.
gc모듈 문서 도 참조하십시오 .
이 gc.get_referrers()와 sys.getrefcount(). 그러나 sys.getrefcount(X)전통적인 참조 계수의 목적에 어떻게 기여할 수 있는지보기는 어렵습니다 . 중히 여기다:
import sys
def function(X):
sub_function(X)
def sub_function(X):
sub_sub_function(X)
def sub_sub_function(X):
print sys.getrefcount(X)
그런 다음 function(SomeObject)'7',
sub_function(SomeObject)'5',
sub_sub_function(SomeObject)'3',
sys.getrefcount(SomeObject)'2'를 전달합니다.
즉, 사용하는 경우 sys.getrefcount()함수 호출 깊이를 알고 있어야합니다. 들어 gc.get_referrers()하나의 참조 자 목록을 필터링 할 수도 있습니다.
"변경시 격리", 즉 "다른 곳에서 참조되는 경우 복제"와 같은 목적으로 수동 참조 계산 을 수행 할 것을 제안합니다 .
반응형
'developer tip' 카테고리의 다른 글
| std :: atomic을 통해 휘발성 한정자가 사용되는 이유는 무엇입니까? (0) | 2020.10.29 |
|---|---|
| wget을 사용하여를 확인할 수 있지만 다운로드 할 수는 없습니다. (0) | 2020.10.29 |
| 지금까지 본 확장 방법의 가장 좋은 또는 가장 흥미로운 사용은 무엇입니까? (0) | 2020.10.29 |
| 명령 줄 도구를 사용하여 정렬 된 순서로 중복 계산 (0) | 2020.10.29 |
| C 프로그래밍 : 전체 파일 내용을 버퍼로 읽는 방법 (0) | 2020.10.29 |