getrefcount函数返回的引用号

时间:2014-12-15 11:33:15

标签: python

下面是

示例:

from sys import getrefcount
getrefcount(1) #1
getrefcount(2) #2
getrefcount('a')  #3
a='a'
getrefcount(a)   #4    
getrefcount("aaaaaaaa") #5
a='aaaaaaaa'
getrefcount(a)  #6

出局是: enter image description here

我知道这是因为python存储了一些小对象以供重用。但是,我想知道如何解释#4~#6数字?为什么是2和3?哪个变量引用它?

1 个答案:

答案 0 :(得分:1)

关于5号和6号(返回3和2)

根据Documentation

  

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

当传递一个值('aaaaaaa')时,python会创建另一个临时变量,所以它等于

_temp = 'aaaaaaaa'
getrefcount(_temp)

这是2个引用+ getrefcount使用的临时引用