装饰器的使用
装饰器
函数式编程:把函数当做另外一个函数的参数或者返回值
闭包:是函数式编程的重要语法基础,把函数作为参数或者返回值的编程方式
1. 闭包实现
2. 函数的基本引用:
3. 闭包函数的具体细节
在Python3 中,用关键字nonlocal 进行环境变量的声明,再修改环境变量
4. 基本结构
def 外部函数(参数):
def 内部函数(参数):
使用外部函数的参数(环境变量)
Return 内部函数的引用(就是我们的函数名,不需要加括号)
5. 代码原则
写代码遵循开放封闭原则
已经实现功能的封闭,已经实现功能的代码不允许被修改,但是可以被扩展
案例:
6. 执行的过程
Cost = wrapper(cost)
之前用过的:
@staticmethod
@classmethod
7. 多层装饰
装饰器的结合性:从下往上看
执行:从上往下看
8. 被装饰的函数存在参数的情况
在inner函数即内部函数中需要传参,以便运行被装饰的函数
9. 不定长参数
10. 时间库的使用
11. 装饰器工厂函数
12. 类装饰器(非重点)
13. 实际工作中哪些地方用到装饰器
函数的执行时间统计
执行函数准备工作
函数执行完成,清理工作
添加日志文件
校验权限
缓存