【发布时间】:2013-10-30 03:17:20
【问题描述】:
我试图理解 Python 装饰器,并试图编写一个与此等效的程序:
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()
问题是我不明白类的__call__ 方法是如何通过最后调用aFunction() 来调用的。
aFunction() 是否被 myDecorator.__call__(aFunction) 替换。
你能帮我么?没有装饰器的等效程序如何?
谢谢!
【问题讨论】: