实例计数未递增

2024-04-19 15:44:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我当时在练习写一节课,结果出了这个问题。我编写了一个类,它应该在生成第5个实例后返回函数的值,并且对小于5个的实例不执行任何操作。我编写了下面的代码,但不是每次创建实例时都添加实例计数。__init__中的显示在第一个实例中显示1,之后显示就不存在了。。我想知道我错过了什么。我只是觉得在第一个实例调用之后__init__没有被调用。我通过删除__call__中的'IF'条件进行了检查,每次都显示函数10的结果,但计数没有增加。你知道吗

class After5(object):
    call_count = 0
    def __init__(self, funct):

        After5.call_count += 1
        print('Count{0}'.format(After5.call_count))
        self.funct = funct
    def __call__(self):
        if After5.call_count > 5:  #enter code here
            res = self.funct()
            print('{0}'.format(res))
            print('Sending Results{0}'.format(After5.call_count))
        return res

@After5
def dummy_funct():
    return 5 * 2

dummy_funct()
dummy_funct()
dummy_funct()
dummy_funct()
dummy_funct()
dummy_funct()

Tags: 实例函数selfformatreturninitdefcount