首頁  >  問答  >  主體

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)

黄舟黄舟2741 天前546

全部回覆(1)我來回復

  • 天蓬老师

    天蓬老师2017-04-18 10:34:22

    把a當參數傳入到function後被引用了兩次:

    for attr in dir(function):
        print attr, getattr(function, attr)
    

    可以看到參數a被function這個物件中的兩個屬性分別引用.

    回覆
    0
  • 取消回覆