我用七个参数创建了一类对象。我想创建一个实例列表。
这就是班级的样子:
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.如何解决这个问题?
答案 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
)。
您也可以使用带有**
的字典执行此操作,这允许您使用关键字参数将参数传递给函数/构造函数,并将字典的键作为关键字,将值作为数据。