All pastes #908328 Raw Edit

Anonymous

public text v1 · immutable
·published 2008-02-18 09:50 UTC
rendered paste body
def _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