You can check the help to see how decorators work.
For your Question, check this:
from functools import wraps
def makeitalic(fn): @wraps(fn) def wrapped(*args, **kwargs): return "" + fn(*args, **kwargs) + "" return wrapped
def makebold(fn):
@wraps(fn) def wrapped(*args, **kwargs): return "" + fn(*args, **kwargs) + "" return wrapped @makeitalic @makebold def Hey(): return "Hey PC" @makeitalic @makebold def log(s): return s print Hey() # returns "Hey PC" print Hey.__name__ # with functools.wraps() this returns "Hey" print log('Hey') # returns "hello"