Он печатается не при создании экземпляра класса, а при выполнении области видимости класса.Этот код напечатает «Loaded», хотя я никогда не создавал экземпляр «Test».
class Test:
print "Loaded"
Если вы хотите запустить код при инициализации класса, взгляните на __init__()
.Этот код будет печатать «Loaded» при создании экземпляра, а не при определении самого класса.
class Test:
def __init__(self):
print "Loaded"
Похоже, что метакласс QObject QT переписывает атрибуты класса для предотвращения дублирования сигналов при инициализации нового класса.экземпляр класса.Возможно, вы можете назначить атрибут следующим образом:
class Test(QObject):
def __init__(self, signal):
self.evt_spam = signal
sig = Signal()
a = Test(sig)
b = Test(sig)
Или это:
class Test(QObject):
def signal(self, signal):
self.evt_spam = evt_spam
return self
evt_spam = Signal()
a = Test().signal(evt_spam)
b = Test().signal(evt_spam)