Python装饰器
装饰器
装饰器语法
def logger(fn): def wrapper(*args,**kwargs): #包装函数 print("调用前增强") ret = fn(*args,**kwargs) #参数解构 print("调用后增强") return ret return wrapper @logger #等价于add==>logger(add)==>add==>wrapper def add(x,y): #被包装函数 return x+y print(add(100,200))
- 无参装饰器
- @符号后是一个函数
- 虽然是无参装饰器,但@后的函数本质上是单参函数
- logger会把它下面紧挨着的函数标识符提上来作为它的实参传入