初学Python的我对装饰器的用法有些困惑,经网友指点看到这篇思路清晰的好文,推荐给大家![victory][handshake]
Python装饰器由浅入深
装饰器的功能在很多语言中都有,名字也不尽相同,其实它体现的是一种设计模式,强调的是开放封闭原则,更多的用于后期功能升级而不是编写新的代码。装饰器不光能装饰函数,也能装饰其他的对象,比如类,但通常,我们以装饰函数为例子介绍其用法。要理解在Python中装饰器的原理,需要一步一步来。本文尽量描述得浅显易懂,从最基础的内容讲起。
(注:以下使用Python3.5.1环境)
一、Python的函数相关基础第一,必须强调的是python是从上往下顺序执行的,而且碰到函数的定义代码块是不会立即执行它的,只有等到该函数被调用时,才会执行其内部的代码块。
由于发帖字数受限,剩余内容请大家自行去博主网页阅读。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
如果你看到这,对两个及两个以上的装饰器执行的顺序有疑问的话,可以参考这篇博文的这句话
那么,封装两层可以像这样理解:
@makebold@makeitalichello()hello-copy = makebold(makeitalic(helo))因此,这样理解以后,对于多个装饰器的调用顺序,就不再有疑问了。
转自 http://mingxinglai.com/cn/2015/08/python-decorator/
python装饰器入门与提高////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
对你是否有帮助呢?