Generators and Decorators doing my head in ..
Leif K-Brooks
eurleif at ecritters.biz
Tue Sep 6 12:13:16 EDT 2005
simonvc at gmail.com wrote:
> Im trying to create a decorator that counts the number of times a
> function is run.
Your code doesn't work because decorators are run at function creation
time, not at function run time. Try this instead:
from itertools import count
def logFunctionCalls(function):
times = count()
def newfunction(*args, **kwargs):
print "Entering function:", function.__name__, times.next()
return function(*args, **kwargs)
newfunction.__doc__ = function.__doc__
newfunction.__name__ = function.__name__
return newfunction
@logFunctionCalls
def doWork():
print "Doing work..."
More information about the Python-list
mailing list