python装饰器详解
装饰器
储备知识1:*args和**kwargs
储备知识2:名称空间与作用域
储备知识3:函数对象
储备知识4:函数的嵌套定义
储备知识 5:闭包函数
喜欢编程的小伙伴可以加小编的Q群1026782549,进群可以领取免费的学习资料跟源代码哦!也可以关注小编的微信公众号:编程雯子,领取资料哦
1、什么是装饰器
- 器指的是一个工具,大多数场景都是定义成函数
- 装饰指的是为其他事物添加额外的东西点缀
- 总结:装饰器指的是定义一个函数或者类,用来为其他函数或类添加额外的功能
2、为何要用装饰器
- 开放封闭原则
- 开放:指的是对拓展功能是开放的
- 封闭:指的是对修改源代码是封闭的
- 即在不修改源码及调用方式的前提下拓展功能
3、装饰器案例
无参装饰器实例
有参装饰器实例
为什么需要有参装饰器:
由于语法糖@的限制,装饰器只能由一个参数,并且该参数是用来接收被装饰对象的内存地址。
当wrapper还需要额外的参数时,此时就需要有参装饰器进行装饰。这里的有参指的是给wrapper的参数而不是原函数。
喜欢编程的小伙伴可以加小编的Q群1026782549,进群可以领取免费的学习资料跟源代码哦!也可以关注小编的微信公众号:编程雯子,领取资料哦
可以看出,所谓有参装饰器是在原装饰器上再进行一次闭包后通过语法糖对原装饰器进行传参。
同时使用多个装饰器时,装饰器的加载顺序为自下而上,而运行顺序为自上而下
喜欢编程的小伙伴可以加小编的Q群1026782549,进群可以领取免费的学习资料跟源代码哦!也可以关注小编的微信公众号:编程雯子,领取资料哦