装饰器: 定义: 本质是函数,功能是用来装饰其他函数,就是为其他函数添加附加功能(器是函数的意思,本质是用来装饰的) 原则: 1. 不能修改被装饰的函数的源代码 2. 不能修改被装饰的函数的调用方式 # 装饰器,对被装饰的函数是完全透明的 1-1 def test1(): pass def test2(): pass test1() test2() test1 和 test2 都有自己要完成的功能,现在要把 test1 和 test2 新增加一个记录日志的功能 应该如何操作? 1-1-1 以前的做法,把代码一段一段的加进去 def test1(): pass print('logging') def test2(): pass print('logging') test1() test2() 1-1-2 学了函数之后,高级了一些;单独定义一个函数 def logger(): print('logging') def test1(): pass logger() def test2(): pass logger() test1() test2() 1-1-3 假如有 100 个函数,已经运行在生产环境当中 有一天产品经理说,要对app新增一个功能,应该怎么做?找到100个函数,每一个都加上去? 但是你的程序已经运行了,这种修改源代码的操作,意味着会有风险发生 所以,新增一个功能,不能够修改函数的源代码,函数一旦写好了,原则上是不能动源代码的 因此,函数的调用方式也不能修改