day 12 装饰器的进阶

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
{([目标])}

猜你喜欢

转载自www.cnblogs.com/wy3713/p/9187312.html
今日推荐