我想编写一个运行多个类的程序。我的代码看起来像
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__
属性。
您可以尝试:
list_of_classes = [
(class1, [], {'iterations': 150}),
(class2, [], {}),
(class3, [], {}),
]
for class_, args, kwargs in list_of_classes:
run_class(class_, *args, **kwargs)