装饰器的进阶
1. 函数的相关名称
1. 函数的注释
2. 查看函数的名称 __name__ __doc__
from functools import wraps
@wrap(fn) 把你的函数的名字和doc换成你的目标函数
2. 回顾装饰器
def wrapper(fn):
def inner(*args, **kwargs):
'''之前'''
ret = fn(*args, **kwargs)
'''之后'''
return ret
return inner
@wrapper
def func():
pass
3. 带参数的装饰器
def wrapper_out(参数):
def wrapper(fn):
def inner(*args, **kwargs):
'''之前'''
ret = fn(*args, **kwargs)
'''之后'''
return ret
return inner
return wrapper
@wrapper_out(实参) # 先执行wrapper_out(实参), 得到一个装饰器, 和前面的@组装成一个语法糖
def func():
pass
4. 多个装饰器同时装饰一个函数
@wrapper1
@wrapper2
@wrapper3
def func():
pass
{([目标])}