考虑以下装饰:适用装饰类类方法
class connector(object):
def __init__(self, signal):
self.signal = signal
def __call__(self, slot_func):
def wrapper(*args, **kwargs):
slot_func(*args, **kwargs)
self.signal.connect(wrapper)
而继信号,类方法我需要装饰:
from signalslot import Signal
update = Signal()
class manager(object):
# SOME CODE CUT
@connector(update)
def update(self):
print("I'm updating, yay!!!!")
正如你可以看到我需要通过装饰一些额外的参数,在这种情况下 - 我需要连接到信号。 如何通过自我?
我之所以问这个,因为它没有与下面的错误,如果我尝试运用这种装饰的方法,而不是一个函数:
TypeError: update() missing 1 required positional argument: 'self'
更具体地说,如果我试图发出信号:
update.emit()
是的,我在该项目中使用"signalslot"。