了解sys.getrefcount

时间:2014-07-07 15:29:07

标签: python

来自doc:

  

返回的计数通常比您预期的高一个,因为它包含(临时)引用作为getrefcount()的参数。

并且'直到这里一切都很清楚,事实上:

Python 3.4.0 (default, Apr 11 2014, 13:05:11) 
[GCC 4.8.2] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> x = 'hello'
>>> sys.getrefcount(x)
2

但如果我这样做:

>>> import sys
>>> x = 'hello'
>>> sys.getrefcount(x)
2
>>> sys.getrefcount('hello')
3

我不明白为什么我得到3,我应该得到2?

我注意到的另一个奇怪的例子(来自文件.py):

import sys
print(sys.getrefcount(59587389257548905723958375385))

结果---> 3

不应该是1(根据文件)?

0 个答案:

没有答案