装饰器:本质就是函数。是为其他函数添加附加功能的。
原则:
1.不修改被修饰函数的源代码
2.不修改被修饰函数的调用方式
--- 装饰器的知识储备
装饰器=高阶函数+函数嵌套+闭包
高阶函数
1.高阶函数的定义
····函数接收的参数是一个函数名
····函数的返回值是一个函数名
····满足上述条件任意一个,都可称之为高阶函数
·········
def foo(): print('hello world') def test(func): print(func) func() test(foo)
运行结果:
<function foo at 0x0000024E9658C2F0>
hello world
Process finished with exit code 0
···········
def foo(): print('hello world') def test(func): return func foo =test(foo) foo()
运行结果:
hello world
Process finished with exit code 0