装饰器是一种特殊的函数,它输入一个函数输出一个函数,可用于给一个函数附加一些功能
定义一个打印函数名的装饰器
def print_name(func): def funtion(*args,**kwargs): print(func.__name__) result = func(*args, **kwargs) return result return function
通过@调用
@print_name def func(): pass func()
在上面例子中, func函数本来是空的,现在它每次运行都会打印自身的函数名
一个函数可以有多个装饰器,优先级是离函数越近越先调用