一、说明
本文对装饰器做了一个极其简单的解释图例,并用类定义一个装饰器;让读者在5分钟之内永远搞懂装饰器,不迷路。
二、装饰器通俗解释
我们将单独的函数比喻成一条路径,从A到B; 如图:
通过定义装饰器,将路径AB内嵌到一个更大程序EF中,使得原路径AB改变成,EABF。这样做的好处是:在调用AB段之前的EA段可以夹带“私货”,在调用AB之后的BF段也可以夹带“私货”。仿佛给程序AB“穿鞋”-“戴帽”进行了某种装饰。
三、自定义装饰器方法
class myDecorator(object):
def __init__(self, f):
print( \"inside myDecorator.__init__()\" )
f() # Prove that function definition has completed
def __call__(self):
print(\"inside myDecorator.__call__()\")
@myDecorator
def aFunction():
print( \"inside aFunction()\" )
print( \"Finished decorating aFunction()\" )
aFunction()
结果:
inside myDecorator.__init__()
inside aFunction()
Finished decorating aFunction()
inside myDecorator.__call__()
来源:https://blog.csdn.net/gongdiwudu/article/details/122257267
本站部分图文来源于网络,如有侵权请联系删除。