Модуль :
from decorator import decorator
@decorator
def trace(func, *args, **kw):
print 'calling', func, 'with', args, kw
return func(*args, **kw)
Это делает trace
декоратором с теми же аргументами, что и оформленная функция Пример:
>>> @trace
... def f(x, y=1, z=2, *args, **kw):
... pass
>>> f(0, 3)
calling f with (0, 3, 2), {}
>>> from inspect import getargspec
>>> print getargspec(f)
ArgSpec(args=['x', 'y', 'z'], varargs='args', keywords='kw', defaults=(1, 2))