J'ai cette classe:Quelle est la cause de la méthode "unbin __init __() doit être appelée avec l'instance en tant que premier argument" de ce code Python?
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)
et je appelle avec ce script:
import timer
def hello():
print \"hello, world
t = timer.Timer(1.0, hello)
t.run()
et obtenir cette erreur et je ne peux pas comprendre pourquoi: unbound method __init__() must be called with instance as first argument
Ce serait super (Thread, self) .__ init __() '- mais super a aussi ses propres problèmes:/ –
@ THC4k: Super n'a pas de problèmes, l'héritage multiple a des problèmes. Et si vous utilisez l'héritage multiple, super est beaucoup mieux que les appels directs. – nikow
super est juste une recette pour un désastre, spécialement dans l'héritage multiple, plus spécialement s'il y a des extensions qui ont besoin d'être rechargées. – dashesy