Rumah  >  Soal Jawab  >  teks badan

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 hari yang lalu549

membalas semua(1)saya akan balas

  • 天蓬老师

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

    Selepas melepasi a sebagai parameter untuk berfungsi, ia dirujuk dua kali:

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

    Anda boleh melihat bahawa parameter a dirujuk oleh dua atribut dalam objek fungsi.

    balas
    0
  • Batalbalas