将存储的参数传递给python类

问题描述 投票:0回答:1

我想编写一个运行多个类的程序。我的代码看起来像

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__属性。

python-3.x arguments parameter-passing
1个回答
1
投票

您可以尝试:

list_of_classes = [
    (class1, [], {'iterations': 150}),
    (class2, [], {}),
    (class3, [], {}),
]
for class_, args, kwargs in list_of_classes:
    run_class(class_, *args, **kwargs)
© www.soinside.com 2019 - 2024. All rights reserved.