def debug_call(f): def inner(*args, **kwargs): print(f, args, kwargs) return f(*args, **kwargs) return inner # @debug_call def foo(a, b): return a + b foo = debug_call(foo)