python 为什么调用函数会令引用计数+2
本文介绍了python 为什么调用函数会令引用计数+2的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
import sys
a = 11
init_cnt = sys.getrefcount(a) - 1
print "init", init_cnt
####init 22
def function(c):
print 'in function, count: ', sys.getrefcount(c) - 1
####in function, count: 24
print '函数调用,计数器增加', sys.getrefcount(c) - 1 - init_cnt
####函数调用,计数器增加 2
function(a)
解决方案
把a当参数传入到function后被引用了两次:
for attr in dir(function):
print attr, getattr(function, attr)
可以看到参数a被function这个对象中的两个属性分别引用.
这篇关于python 为什么调用函数会令引用计数+2的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文