如何将一个 class 元素连接到另一个 class 元素?
How to connect one class element to another class?
所以我已经学习 python 几个月了,并决定制作一款棒球模拟游戏。
到目前为止,我已经创建了 2 个 classes:Teams 和 Players。每个团队都有 team id
、name
和 record
。每个玩家都有 player id
、team id
、name
和 position
。
我想知道如何将创建的玩家连接到创建的团队并拥有名单变量。目前,我有一个所有创建的玩家的列表,并将他们分配给 2 个不同的创建团队。然后有一个 for 循环的功能,将所有具有相同团队 ID 的相同玩家放在一起。这就是我所拥有的产生玩家及其位置的结果。
class Player:
def __init__(self, player_id, team_id, name, position):
self.pid = player_id
self.tid = team_id
self.name = name
self.position = position
class Team:
def __init__(self, team_id, location, team_name, record):
self.tid = team_id
self.location = location
self.team = team_name
self.record = record
def team_1():
for player in players:
if player.tid == 1:
print(player.name, player.position)
结果:
Player1 P
Player2 C
Player3 1st
Player4 2nd
Player5 3rd
Player6 SS
Player7 LF
Player8 CF
Player9 RF
这可能不是连接两个 class 的最佳方式,但是有没有办法像 Result 一样将团队 class 连接到花名册?有没有一种方法可以将属性作为列表并将玩家放入其中 link 他们?
有很多方法可以做到这一点 - 这里有一个(希望)直接的解决方案。
为球队添加属性 class 以容纳其球员。
class Team:
def __init__(self, team_id, location, team_name, record):
self.tid = team_id
self.location = location
self.team = team_name
self.record = record
self.roster = []
当你让一名球员加入球队时。
team1 = Team(1,'here','us','inf-0')
p1 = Player(1,1,'me','concession stand')
team1.roster.append(p1)
在那种情况下,花名册包含一个完整的玩家实例。您可能只想 保留 玩家 ID。
p1 = Player(1,1,'me','concession stand')
team1.roster.append(p1.pid)
也许你有一个球队列表,当你制作球员时需要找到球队。
team1 = Team(1,'here','us','inf-0')
team2 = Team(2,'there','there','???')
teams = [team1,team2]
p1 = Player(1,1,'me','concession stand')
for team in teams:
if team.tid == p1.pid:
team.roster.append(p1)
所以我已经学习 python 几个月了,并决定制作一款棒球模拟游戏。
到目前为止,我已经创建了 2 个 classes:Teams 和 Players。每个团队都有 team id
、name
和 record
。每个玩家都有 player id
、team id
、name
和 position
。
我想知道如何将创建的玩家连接到创建的团队并拥有名单变量。目前,我有一个所有创建的玩家的列表,并将他们分配给 2 个不同的创建团队。然后有一个 for 循环的功能,将所有具有相同团队 ID 的相同玩家放在一起。这就是我所拥有的产生玩家及其位置的结果。
class Player:
def __init__(self, player_id, team_id, name, position):
self.pid = player_id
self.tid = team_id
self.name = name
self.position = position
class Team:
def __init__(self, team_id, location, team_name, record):
self.tid = team_id
self.location = location
self.team = team_name
self.record = record
def team_1():
for player in players:
if player.tid == 1:
print(player.name, player.position)
结果:
Player1 P
Player2 C
Player3 1st
Player4 2nd
Player5 3rd
Player6 SS
Player7 LF
Player8 CF
Player9 RF
这可能不是连接两个 class 的最佳方式,但是有没有办法像 Result 一样将团队 class 连接到花名册?有没有一种方法可以将属性作为列表并将玩家放入其中 link 他们?
有很多方法可以做到这一点 - 这里有一个(希望)直接的解决方案。
为球队添加属性 class 以容纳其球员。
class Team:
def __init__(self, team_id, location, team_name, record):
self.tid = team_id
self.location = location
self.team = team_name
self.record = record
self.roster = []
当你让一名球员加入球队时。
team1 = Team(1,'here','us','inf-0')
p1 = Player(1,1,'me','concession stand')
team1.roster.append(p1)
在那种情况下,花名册包含一个完整的玩家实例。您可能只想 保留 玩家 ID。
p1 = Player(1,1,'me','concession stand')
team1.roster.append(p1.pid)
也许你有一个球队列表,当你制作球员时需要找到球队。
team1 = Team(1,'here','us','inf-0')
team2 = Team(2,'there','there','???')
teams = [team1,team2]
p1 = Player(1,1,'me','concession stand')
for team in teams:
if team.tid == p1.pid:
team.roster.append(p1)