Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class count_calls(object):
- counterdict = {}
- def __init__(self, fn):
- self.fn = fn
- self.func_name = self.fn.__name__
- if not self.func_name in self.counterdict:
- self.counterdict[self.func_name] = 0
- def __call__(self, *args, **kwargs):
- self.counterdict[self.func_name] += 1
- return self.fn(*args, **kwargs)
- def counter(self):
- return self.counterdict[self.func_name]
- @classmethod
- def counters(cls):
- return cls.counterdict
- @classmethod
- def reset_counters(cls):
- cls.counterdict = {}
- @count_calls
- def adding(*args):
- return sum(args)
- >>> adding(1, 2)
- 3
- >>> adding(3, 4)
- 7
- >>> adding(5, 6)
- 11
- >>> adding.counter()
- 3
- >>> adding.counters()
- {'adding': 3}
- >>> adding.reset_counters()
- >>> adding.counters()
- {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement