Python 比赛注册程序使用类
我的任务是创建一个代码,定义两个类,一个玩家和一个团队,每个类都有一些参数。玩家应该有名字、滑雪板的数量、雪橇的数量和玩家索引(玩家之前玩过的游戏数量)Python 比赛注册程序使用类,python,class,instance,Python,Class,Instance,我的任务是创建一个代码,定义两个类,一个玩家和一个团队,每个类都有一些参数。玩家应该有名字、滑雪板的数量、雪橇的数量和玩家索引(玩家之前玩过的游戏数量) def get_transport_capacity(self): skis = len(Player.skis) for i in Player.sledges: sledges += Player.sledges[i] capacity = skis + sledges return capa
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
我成功地定义了类的这些属性,但是我很难实现团队类。团队应该拥有团队的名字和球员的数量球员不能只是他们的名字,它必须链接到类实例(球员)。我不明白如何使用player实例中提供的信息来实现团队。以下是我目前的代码:
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
*更新
谢谢你的帮助,我还有一个功能要添加,这个功能将返回一个团队可以容纳的乘客数量。我尝试过类似的方法,但我认为语法不正确。用户输入每个底座中的位置数,因此我需要迭代列表中的值以获得位置数
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
而不是
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
self.players = [Player]
为什么不:
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
self.players = []
然后有一种方法将球员添加到团队中,如中所示:
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
def add_player(self, player):
# ensure optionally that player is a PLayer instance
assert type(player) == Player
self.players += player
而不是
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
self.players = [Player]
为什么不:
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
self.players = []
然后有一种方法将球员添加到团队中,如中所示:
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
def add_player(self, player):
# ensure optionally that player is a PLayer instance
assert type(player) == Player
self.players += player
用法:
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
a = Player('AName', 2)
b = Player('BName', 11)
team = Team('TeamName', [a, b])
用法:
def get_transport_capacity(self):
skis = len(Player.skis)
for i in Player.sledges:
sledges += Player.sledges[i]
capacity = skis + sledges
return capacity
a = Player('AName', 2)
b = Player('BName', 11)
team = Team('TeamName', [a, b])
您应该返回什么
get\u transport\u capacity
?请正确缩进您的代码。现在,它无效。应该返回什么get\u transport\u capacity
?请正确缩进代码。现在,它是无效的。index=sum(list(lambda p:p.index,self.players))
假设做什么?也许您想键入sum(list(map(lambda p:p.index,self.players))
index=sum(list(lambda p:p.index,self.players))应该做什么?也许您想键入sum(list(map(lambda p:p.index,self.players))