装饰器
装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用;概括的讲,装饰器的作用就是为已经存在的函数或对象添加额外的功能。
#定义函数:完成包裹数据 def makeBold(fn): def wrapped(): return "" + fn() + "" return wrapped #定义函数:完成包裹数据 def makeItalic(fn): def wrapped(): return "" + fn() + "" return wrapped @makeBold def test1(): return "hello world-1" @makeItalic def test2(): return "hello world-2" @makeBold @makeItalic def test3(): return "hello world-3" print(test1()) print(test2()) print(test3())
装饰器的功能:
- 引入日志
- 函数执行时间统计
- 执行函数前预备处理
- 执行函数后清理功能
- 权限校验等场景
- 缓存
更多参见:https://www.cnblogs.com/cicaday/p/python-decorator.html