装饰器:
定义:本质是函数,(装饰其他函数)就是为其他函数添加附加功能
原则:1.不能修改被装饰的函数的源代码
2.不能修改被装饰的函数的调用方式
实现装饰器知识储备:
1.函数即“变量”
2.高阶函数
a:把一个函数名当作形参传给另外一个函数(在不修改被装饰函数的情况下为其添加功能)
b:返回值中包含函数名
语法糖
例子:
test2(bar)---->是将bar的内存地址传给test2(符合高阶函数定义)
test2(bar())----->是将bar的返回值传给了test2(不符合高阶函数定义)
3.嵌套函数
高阶函数+嵌套函数====>装饰器