创建具有多个不同实例变量的多个对象

时间:2019-05-21 21:30:37

标签: python

我有一个带有3个实例属性a,b和c的类。

class Thing:
def __init__(self,a,b,c):
    self.a = a
    self.b = b
    self.c = c

我想实例化该类的任意数量的对象,比方说5,并从列表中插入不同的属性:

a_attributes = [string.ascii_uppercase[i] for i in range(5)]
b_attributes = [i for i in range(5)]
c_attributes = ['Car','House','Boat','Tree','Pond']

直觉上,我认为我可以压缩属性列表以创建一个三元组列表,然后将每个元组传递给构造函数方法来创建每个对象,但这不起作用:

attribute_list = list(zip(a_attributes, b_attributes, c_attributes))
Things = [Thing(attributes) for attributes in attribute_list]

这会引发TypeError-可以理解的是,它会将元组视为1个参数。

我决定采用这种解决方案,该解决方案虽然有效,但感觉很不雅:

Things = [Thing(attributes[0], attributes[1], attributes[2]) for attribute in attributes_list]

是否有更好的方法来执行此操作,或者在我的整个方法中是否存在某些问题?

0 个答案:

没有答案