脚本宝典收集整理的这篇文章主要介绍了Python装饰器学习笔记,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
前言
最近跟着《流畅的Python》和《Python CookBook》学习,看到装饰器部分,有些头大@H_304_8@倒不是因为概念难以理解,而是书和网上文章中有些地方有些矛盾之处
在简单学习和实践之后,整理出我对装饰器的理解如下
装饰器的定义
在不同语境下,装饰器有不一样的含义,我大致认为有3种定义:
- 一种把另一个对象当参数的对象
- 一种语法糖
- 面对对象设计中的装饰器模式
之所以这里特别指出,是因为在很多文章和书中
把装饰器定义成一个函数,有些更扩展一些,把装饰器定义成一个callable对象
对刚开始学习的读者来说这么解释或许不错,但在使用python的过程中,我们发现装饰器可以是
如果说方法有__call__
方法,能符合上面callable对象的定义的话
classmethod类和property类可没__call__
方法,所以我认为更准确的定义是我上面总结的前两点
装饰器的作用
广义上说,更优雅地处理对象,相比taget = decorate(target)
,@decorate
可要优雅多了
狭义上说,各种功能:
- 禁止函数运行 (刚想到,写个不return原函数的装饰器去装饰某函数,这个函数不就不运行了嘛,不晓得是否有人会这么干)
- 记录函数的运行状况
- 缓存计算结果
- 检查/修改参数
- 装逼?
- 其他
装饰器的使用注意点
以上是脚本宝典为你收集整理的Python装饰器学习笔记全部内容,希望文章能够帮你解决Python装饰器学习笔记所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。