sys.getrefcount() returns 值远高于 2
sys.getrefcount() returns value much higher than 2
我知道调用 getrefcount()
会将引用按值复制到函数的参数中,暂时增加对象的引用计数。这是第二个参考的来源。
但是,当我 运行 以下代码时,我得到的引用计数值为 33
import sys
a1 = 5
print(sys.getrefcount(a1))
我期待 2
的输出,但它正在打印 33
5
是 CPython 缓存的小整数之一。因此,每个恰好为 5
的值都指向同一个实例。例如,将其更改为 a1 = 5000
,您将看到它按预期打印 2
。
我知道调用 getrefcount()
会将引用按值复制到函数的参数中,暂时增加对象的引用计数。这是第二个参考的来源。
但是,当我 运行 以下代码时,我得到的引用计数值为 33
import sys
a1 = 5
print(sys.getrefcount(a1))
我期待 2
的输出,但它正在打印 33
5
是 CPython 缓存的小整数之一。因此,每个恰好为 5
的值都指向同一个实例。例如,将其更改为 a1 = 5000
,您将看到它按预期打印 2
。