rendered paste bodydef _func(a, *args, **kwargs):
print 'Blablabla'
return 'a=%s' % str(a)
def loggedfunction(f):
from functools import wraps
@wraps(f)
def wrapper(*args, **kwargs):
print 'Calling function', f.__name__, 'with args', args, 'and kwargs', kwargs
ret = f(*args, **kwargs)
print 'Done, returned value is', ret
return ret
return wrapper
func = loggedfunction(_func)
def main():
func('a', 'b', foo='bar')
if __name__ == '__main__':
main()
$ python test.py
Calling function _func with args ('a', 'b') and kwargs {'foo': 'bar'}
Blablabla
Done, returned value is a=a