如何创建具有多个参数的类实例列表?

时间:2015-08-26 16:25:36

标签: python

我用七个参数创建了一类对象。我想创建一个实例列表。

这就是班级的样子:

class Player(object):
    def __init__(self, name, position, age, handedness, number, team)

到目前为止,我有12个类的实例(我想让它更长一旦我可以使这个功能)。 E.g:

dw = ("David Wright", "3B", 32, "R", 5, "Mets")

这是我尝试创建列表:

player_list = []
for i in range(12):
    player_list.append(Player())

我收到一个错误,我只提供了一个参数(我意识到),但是Class需要7.如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

您需要将您的参数放入元组或词典列表中。例如:

class Player(object):
    def __init__(self, name, position, age, handedness, number, team):
        self.name = name
        self.position = position
        self.age = age
        self.handedness = handedness
        self.number = number
        self.team = team


player_data = [("David Wright", "3B", 32, "R", 5, "Mets"),
               ('Another Person', '2e', 43, "S", 4, "Teams!")]
players = [Player(*player) for player in player_data]
for player in players:
    print(player.number)

这会从列表player_date中获取每个tuple并使用*执行称为展开/解包的操作。

基本上,它接受元组并按顺序将元组的每个元素传递给函数/构造函数(在这种情况下为Player)。

您也可以使用带有**的字典执行此操作,这允许您使用关键字参数将参数传递给函数/构造函数,并将字典的键作为关键字,将值作为数据。