定义
本质是函数,(装饰其他函数)就是为其他函数添加附加功能
原则
1.不能修改被装饰的函数的源代码
2.不能修改被装饰的函数的调用方式
实现装饰器的效果
1.函数即‘变量’
2.高阶函数
a:把一个函数名当做实参传递给另一个函数(在不修改被装饰函数源代码的情况下为其添加功能)
b:返回值中包含函数名(不修改函数的调用方式)
3.嵌套函数
高阶函数+嵌套函数=》装饰器
def timer(func):
def deco(): print('hello,world') func() return deco
@timer #test1=timer(test1) def test1(): time.sleep(3) print('test1')