装饰器
前提知识:python函数(高阶函数)、闭包的概念
实质:一个函数,参数和返回值是另一个函数/方法
装饰器是在python2.4之后新加入的.
如何定义
自定义的装饰器
|
|
测试代码运行时间的装饰器
|
|
使用了@
语法糖之后,看着就比较好了。装饰器实际上是一个闭包,装饰器完成了两个操作。
第一个装饰器中的操作
第二返回了一个函数
如何保存被装饰的函数的元数据
|
|
可以看到,被装饰的函数e的元属性改变了.
解决方法
|
|
如何去掉装饰器的效果
|
|
上面这个在py3.x才生效.
让装饰器带上参数
装饰器带上参数,需要在多加一层包裹的函数.
|
|
eg
|
|
可以调整参数的装饰器
|
|
装饰器的应用场景
参数检查
缓存
常用于递归等
代理
###