Каждый объект, который я знаю в 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
Но почему?