我在研究Python的ctypes模块,以更好地理解垃圾回收机制。在解释器中尝试时,我遇到了这种奇怪的情况:
>>>import ctypes
>>>def get_ref(obj):
... """ This returns the refcount of obj as a c_size_t """
... return ctypes.c_size_t.from_address(id(obj))
...
>>>myInt = 0
>>>get_ref(myInt)
c_ulong(283L)
为什么Python中似乎有283次引用了我的整数变量myInt?我是否漏掉了什么?感谢您的见解。
sys.getrefcount
方法以更少的 hacky 方式获取 refcount。gc
模块还包含多个函数,可用于分析 GC 行为。 - user395760