Код был взят из Learning Python 4-е издание Марк ЛутцМожет кто-нибудь объяснить этот код декоратора мне?
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