我有一个创建代码的任务,该代码将定义2个类,一个玩家和一个团队,每个团队都有一些参数。玩家应该有一个名字,一些滑雪板,一些雪橇和一个玩家索引(之前玩家玩过的游戏数量)。
我设法定义了这个类的属性,但是我很难实现团队类。团队应该拥有团队的名称和玩家的数量 - 玩家不能只是他们的名字,它必须链接到类实例(玩家)。我不了解如何使用播放器实例中提供的信息来实施团队。到目前为止,这是我的代码:
class Player:
def __init__(self, name, skis, index):
self.name = name
self.sledges = []
self.skis = []
self.index = index
pass
class Team:
def __init__(self, name, players):
self.name = name
self.players = [Player]
pass
def get_players_count()
def get_transport_capacity()
def get_average_index()
*更新 感谢您的帮助,我还有一个功能可以添加,这个功能可以返回团队可以容纳的乘客数量。我尝试过这样的事情,但我认为语法不正确。用户输入每个雪橇中的位数,因此我需要迭代列表中的值以获得位置数。
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
答案 0 :(得分:0)
而不是
self.players = [Player]
为什么不:
self.players = []
然后有一种方法可以将球员添加到球队中,如下所示:
def add_player(self, player):
# ensure optionally that player is a PLayer instance
assert type(player) == Player
self.players += player
答案 1 :(得分:0)
class Player:
def __init__(self, name, index):
self.name = name
self.sledges = []
self.skis = []
self.index = index
class Team:
def __init__(self, name, players):
self.name = name
self.players = players
def get_players_count(self):
return len(self.players)
def add_player(self, player):
self.players.append(player)
def get_average_index(self):
indexes = sum(list(map(lambda p: p.index, self.players)))
count = self.get_players_count()
return float(indexes) / count
用法:
a = Player('AName', 2)
b = Player('BName', 11)
team = Team('TeamName', [a, b])