的代码已经从Python入门第四版由马克·鲁茨采取可能有人向我解释这个装饰器代码?
class tracer:
def __init__(self, func):
self.calls = 0
self.func = func
def __call__(self, *args):
self.calls += 1
print('call %s to %s' % (self.calls, self.func.__name__))
self.func(*args)
@tracer
def spam(a, b, c):
print(a + b + c)
spam(1, 2, 3)
此外,当我运行此代码,它不打印的1,2,3总和下去,但在书,它表明它! 我在这个完整的代码中徘徊不前。我不知道这里发生了什么。
不*发生什么*? – jheld