Я хочу написать программу, которая запускает несколько классов. Мой код выглядит как
list_of_classes = [class1, class2, class3]
def run_class(class_):
print("Running class ", class_.__name__) #All my classes have such attribute
x = class_()
x.doStuff()
#etc
for class_ in list_of_classes:
run_class(class_)
Проблема в том, что для некоторых классов я хочу передать некоторые аргументы (которые являются необязательными). Например, предположим, что для class1 я хочу передать аргумент iterations = 150
.
Как мне это сделать? Моя первая мысль - изменить list_of_classes
следующим образом:
list_of_classes = [(class1, 'iterations=150'), (class2, ''), (class3, '')]
Но как передать вторую часть кортежа в качестве аргумента?
Я делаю Я не хочу помещать аргументы непосредственно в список следующим образом:
list_of_classes = [class1(iterations=150),class2,class3]
, потому что я не смогу использовать атрибут __name__
в своей функции.