Maison  >  Questions et réponses  >  le corps du texte

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 Il y a quelques jours544

répondre à tous(1)je répondrai

  • 天蓬老师

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

    Après avoir passé a en paramètre à la fonction, il est référencé deux fois :

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

    Vous pouvez voir que le paramètre a est référencé par deux attributs dans l'objet fonction.

    répondre
    0
  • Annulerrépondre