相关疑难解决方法(0)

为什么sys.getrefcount()返回2?

据我所知,sys.getrefcount()返回一个对象的引用数,在下列情况下"应该"为1:

import sys,numpy
a = numpy.array([1.2,3.4])
print sys.getrefcount(a)
Run Code Online (Sandbox Code Playgroud)

然而,事实证明是2!所以,如果我:

del a
Run Code Online (Sandbox Code Playgroud)

"numpy.array([1.2,3.4])"对象是否仍然存在(没有垃圾收集)?

python garbage-collection

18
推荐指数
1
解决办法
4677
查看次数

"sys.getrefcount()"返回值

为什么

sys.getrefcount() 
Run Code Online (Sandbox Code Playgroud)

对于每个大数字或简单字符串返回3?这是否意味着3个对象驻留在程序中的某个位置?另外,为什么不设置x =(非常大的数字)会增加该对象的引用计数?这3个引用计数是否来自于我的打电话给getrefcount?谢谢你澄清这一点.

例如:

>>> sys.getrefcount(4234234555)
3
>>> sys.getrefcount("testing")
3
>>> sys.getrefcount(11111111111111111)
3
>>> x=11111111111111111
>>> sys.getrefcount(11111111111111111)
3 
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
2
解决办法
2631
查看次数

标签 统计

python ×2

garbage-collection ×1