>>> @MyDecorator('any-tag') ... def foo(): ... print u'foo' ... >>> foo(): pre-action. tag=any-tag. foo post-action. tag=any-tag. class MyDecorator(object): def __init__(self, tag): self._tag = tag def __call__(self, f0): def decorated(*args, **kwargs): print u'pre-action. tag=' + self._tag ret = f0(*args, **kwargs) print u'post-action. tag=' + self._tag return ret return decorated from functools