【发布时间】:2015-08-22 01:38:10
【问题描述】:
我正在尝试一些相当简单的事情。我想编写一个装饰器,它使用 pydispatcher 在事件处理程序中转换类方法。这是我的基本方法:
from pydispatch.dispatcher import connect,send,Any
SIGNAL = "test"
def triggered(func):
connect(func,signal=SIGNAL,sender = Any)
return func
class P(object):
@triggered
def a(self,*args,**kwargs):
print "yay"
if __name__ == "__main__":
p = P()
send(signal=SIGNAL,sender="")
这会引发错误:
Traceback (most recent call last):
File "util.py", line 35, in <module>
send(signal=SIGNAL,sender="")
File "/usr/local/lib/python2.7/dist-packages/pydispatch/dispatcher.py", line 338, in send
**named
File "/usr/local/lib/python2.7/dist-packages/pydispatch/robustapply.py", line 55, in robustApply
return receiver(*arguments, **named)
TypeError: a() takes at least 1 argument (0 given)
有什么想法吗?
【问题讨论】:
标签: python decorator class-method