繁体   English   中英

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

[英]How do I create a list of class instances that have multiple arguments?

我创建了带有七个参数的对象类。 我想创建实例列表。

这是该类的样子:

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

到目前为止,我有12个该类的实例(一旦我可以使它起作用,我想使其更长)。 例如:

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

这是我创建列表的尝试:

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

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

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

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获取每个元组 ,并使用*进行展开/拆包。

基本上,它采用元组并将元组的每个元素按顺序传递给函数/构造函数(在本例中为Player )。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM