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))
  • 无参装饰器
  1. @符号后是一个函数
  2. 虽然是无参装饰器,但@后的函数本质上是单参函数
  3. logger会把它下面紧挨着的函数标识符提上来作为它的实参传入

 

posted @ 2020-05-20 19:34  F_jj  阅读(126)  评论(0编辑  收藏  举报