Каждый объект, который я знаю в Python, может позаботиться о его инициализации базового класса, вызвав:
super(BaseClass, self).__init__()
Это не похоже на подкласс threading.Thread, так как если я попробую это в SubClass.__init__(), я получаю:
RuntimeError: thread.__init__() not called
Что дает эта ошибка? Я посмотрел на источник для threading.Thread, и похоже, что метод __init__ должен установить Thread.__initialized = True. Я вижу, что все примеры используют следующий __init__:
class YourThread(threading.Thread):
def __init__(self, *args):
threading.Thread.__init__(self)
# whatev else
Но почему?