为什么
sys.getrefcount()对于每个大数字或简单字符串返回3?这是否意味着3个对象驻留在程序中的某个地方?另外,为什么设置x=(非常大的数字)不会增加该对象的引用计数?这3个引用计数是由我调用getrefcount产生的吗?谢谢你澄清这一点。
例如:
>>> sys.getrefcount(4234234555)
3
>>> sys.getrefcount("testing")
3
>>> sys.getrefcount(11111111111111111)
3
>>> x=11111111111111111
>>> sys.getrefcount(11111111111111111)
3发布于 2021-02-25 23:09:38
似乎当您将一个直接数作为参数传递给sys.getrefcount时,您有3个引用:
例如,让我们考虑一下:
>>> sys.getrefcount(123456)
3
>>> a = 123456
>>> sys.getrefcount(a)
2我真的不知道Python的想法是什么,但它仍然很有趣。我只能猜测原始整数(ref #1)被临时转换成一个int对象(ref #2),然后作为参数传递给sys.getrefcount (ref #3)。
https://stackoverflow.com/questions/7544395
复制相似问题