有时候,我们想知道一个函数被调用了多少次。这个需求可以通过装饰器来实现。
我们来写一个装饰器类:
class CallingCounter(object):
def __init__ (self, func):
self.func = func
self.count = 0
def __call__ (self, *args, **kwargs):
self.count += 1
return self.func(*args, **kwargs)
再来写一个被装饰的函数:
@CallingCounter
def test():
print('我被调用了')
下面我们来看看运行效果: