import functools
def outer(func):
@functools.wraps(func)
def inner(*args, **kwargs):
return func(*args, **kwargs)
return inner
@outer
def handler(): #要装饰的方法函数
pass
handler() #执行该函数前会先去执行outer函数
print(handler.__name__) # handler
函数名.__name__ 可以打印出字符串形式的函数名
函数名.__doc__ 可以打印出该函数的注释
如果不加@functools.wraps(func) 不会影响正常功能,但函数会被认作是装饰器函数。



