Python sys.getrefcount() 方法



Python sys.getrefcount() 方法返回对象的引用计数。引用计数指示指向内存中对象的引用数。此方法对于调试内存管理问题和了解 Python 内存中的对象生命周期非常有用。

调用此方法时,它会以整数形式返回计数,由于函数调用创建了临时引用,该整数通常高于预期。

语法

以下是 Python sys.getrefcount() 方法的语法和参数 -


 sys.getrefcount(object)

参数

此函数接受要获取其引用计数的对象。

返回值

此方法返回对象的引用计数。

示例 1

以下是检索整数 42 的引用计数的基本示例,确切计数可能因 Python 实现和平台而异 -


import sys

a = 42
print(sys.getrefcount(a)) 		

输出

1000000005

示例 2

此示例显示了 list 对象的引用计数。计数至少为 2,因为来自变量 lst 的引用和传递给 sys.getrefcount() 的临时引用 -


import sys

lst = [1, 2, 3]
print(sys.getrefcount(lst)) 		

输出

2

示例 3

此示例显示字符串对象的引用计数。由于内部优化(如字符串实习)的原因,计数可能会更高。


import sys

s = "hello"
print(sys.getrefcount(s)) 	

输出

4

示例 4

此示例定义了一个打印对象的引用计数的函数。引用计数包括来自函数 scope 中参数的引用。


import sys

def check_refcount(obj):
	 	 print(sys.getrefcount(obj))

b = [4, 5, 6]
check_refcount(b) 		

输出

4