示例:
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
出局是:
我知道这是因为python存储了一些小对象以供重用。但是,我想知道如何解释#4~#6数字?为什么是2和3?哪个变量引用它?
答案 0 :(得分:1)
关于5号和6号(返回3和2)
返回的计数通常比您预期的高一个,因为它包含(临时)引用作为getrefcount()的参数。
当传递一个值('aaaaaaa')时,python会创建另一个临时变量,所以它等于
_temp = 'aaaaaaaa'
getrefcount(_temp)
这是2个引用+ getrefcount使用的临时引用