我正在尝试从不同的类初始化对象,并且args在列表中。类的类型需要由列表中的args设置,我想避免使用条件语句,该条件语句可以针对更多类进行扩展。 启动的对象将被添加到对象列表中。
例如:
example_list = [['x', 20], ['p', 50], ['d', 100]
obj_list = []
for i in example_list:
if i[0] == 'x':
xylophone = Xylophone('x', 20)
obj_list.append(xylophone)
if i[0] == 'p':
piano = Piano('p', 50)
obj_list.append(piano)
if i[0] == 'd':
drum = Drum('d', 100)
obj_list.append(drum)
答案 0 :(得分:0)
由于类是python中的对象,因此可以
classes = dict(
x=Xylophone,
p=Piano,...)
for class_name, arg in my_list:
cls = classes[class_name]
object = cls(class_name, arg)