Skip to content

Instantly share code, notes, and snippets.

@headsrooms
Last active January 15, 2018 10:30
Show Gist options
  • Select an option

  • Save headsrooms/98794aae5cc65cbb8c8169a1574d97f7 to your computer and use it in GitHub Desktop.

Select an option

Save headsrooms/98794aae5cc65cbb8c8169a1574d97f7 to your computer and use it in GitHub Desktop.
class FunctionHolder(object):
def __init__(self, function):
self.func = function
self.called_count = 0
def __call__(self, *args, **kwargs):
try:
return self.func(*args, **kwargs)
finally:
self.called_count += 1
def held(function):
return FunctionHolder(function)
@held
def i_am_counted():
pass
i_am_counted()
i_am_counted()
i_am_counted()
i_am_counted.called_count
@FunctionHolder
def i_am_also_counted(val):
print(val)
i_am_also_counted('a')
i_am_also_counted('b')
i_am_also_counted.called_count
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment