Python でオブジェクトの現在の参照カウントを取得する方法はありますか?
			
			43232 次
		
5 に答える
            127        
        
		
Python documentationによると、sysモジュールには次の関数が含まれています。
import sys
sys.getrefcount(object) #-- Returns the reference count of the object.
通常、オブジェクト引数の一時参照のため、予想よりも 1 高くなります。
于 2009-02-04T07:39:03.833   に答える
    
    
            74        
        
		
gcガベージ コレクターのガッツへのインターフェイスであるモジュールを使用すると、 を呼び出しgc.get_referrers(foo)て、 を参照するすべてのリストを取得できますfoo。
したがって、len(gc.get_referrers(foo))そのリストの長さ、つまりリファラーの数が得られます。これは、あなたが求めているものです。
gcモジュールのドキュメントも参照してください。
于 2009-02-04T07:36:25.477   に答える
    
    
            6        
        
		
import ctypes
my_var = 'hello python'
my_var_address = id(my_var)
ctypes.c_long.from_address(my_var_address).value
ctypes引数として変数のアドレスを取ります。ctypesoverを使用する利点はsys.getRefCount、結果から 1 を引く必要がないことです。
于 2019-10-21T19:31:46.313   に答える
    
    
            0        
        
		
Python のすべてのオブジェクトには、参照カウントと型へのポインターがあります。sys モジュールを使用して、オブジェクトの現在の参照カウントを取得できます。sys.getrefcount(object)を使用できますが、オブジェクトを getrefcount() に渡すと参照カウントが 1 増えることに注意してください。
import sys
name = "Steve"
# 2 references, 1 from the name variable and 1 from getrefcount
sys.getrefcount(name)
    于 2021-12-03T13:02:25.870   に答える