from threading import Thread
import time
class Timer(Thread):
def __init__(self, interval, function, *args, **kwargs):
Thread.__init__()
self.interval = interval
self.function = function
self.args = args
self.kwargs = kwargs
self.start()
def run(self):
time.sleep(self.interval)
return self.function(*self.args, **self.kwargs)
i wzywam go z tego skryptu:
import timer
def hello():
print \"hello, world
t = timer.Timer(1.0, hello)
t.run()
i uzyskać ten błąd i nie mogę zrozumieć, dlaczego: unbound method __init__() must be called with instance as first argument
To byłoby super (Wątek, self) .__ init __() '- ale super ma również swoje własne problemy:/ –
@ THC4k: Super nie ma problemów, wiele dziedziczenia ma problemy. A jeśli korzystasz z dziedziczenia wielokrotnego, super jest o wiele lepsze niż połączenia bezpośrednie. – nikow
super to po prostu przepis na katastrofę, szczególnie w przypadku dziedziczenia wielokrotnego, szczególnie jeśli istnieją rozszerzenia, które wymagają przeładowania. – dashesy