![](/img/trans.png)
[英]How to create multiple instances of a same class and pass different arguments in Python
[英]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.