Я хочу динамически создавать класс из двух базовых классов (ExampleTestRun и Thread). Основной целью этого является запуск метода ExampleTestRun «run» в потоке (путем вызова метода класса «start»). Я никогда не использовал super() в Python. Может быть, с этим будет ответ?Как вызвать метод __init__ родительского класса после создания динамического класса в Python?
from threading import Thread
class BaseTest(object):
def __init__(self):
pass
class ExampleTestRun(BaseTest):
def run(self):
try:
a = int('A')
except Exception as ex:
print ex
if __name__ == "__main__":
test_class = type('TestClass', (ExampleTestRun, Thread), {})
test = test_class()
test.start()
я получил ошибку:
Traceback (most recent call last):
File "D:/Dropbox/Workspaces/PyCharmWorkspace/ElgsisTests/src/mcltests/mcltransparent/run.py", line 30, in <module>
test.start()
File "C:\Python27\lib\threading.py", line 737, in start
raise RuntimeError("thread.__init__() not called")
RuntimeError: thread.__init__() not called
Почему вы определили пустой метод '__init__'? – BrenBarn
BrenBarn: В BaseTest? – kepurlaukis
Да. Если вы просто удалите это, он будет работать нормально. – BrenBarn