Python 2.7 如何涉及来自不同类(Python2)的两个实例
我正试图为我的几个朋友创建一个足球比赛计划。我现在有一个类来实例化团队,我正在编写match实例化类 我目前拥有的是:Python 2.7 如何涉及来自不同类(Python2)的两个实例,python-2.7,class,Python 2.7,Class,我正试图为我的几个朋友创建一个足球比赛计划。我现在有一个类来实例化团队,我正在编写match实例化类 我目前拥有的是: class Team(object): def __init__(self, name, games=0, points=0, goals=0, wins=0, loses=0): self.name = name self.points = points self.games = games self.goals
class Team(object):
def __init__(self, name, games=0, points=0, goals=0, wins=0, loses=0):
self.name = name
self.points = points
self.games = games
self.goals = goals
self.wins = wins
self.loses = loses
def win(self):
self.points += 3
self.wins += 1
self.games += 1
def lose(self):
self.points += 1
self.loses += 1
self.games += 1
def ratio(self):
print "(Wins/Loses/Games)\n ", self.wins, "/", self.loses, "/", self.games
class Match(object):
def __init__(self, teamagoals, teambgoals):
self.teamagoals = teamagoals
self.teambgoals = teambgoals
def playgame(teama, teamb):
#conditional statements which will decide who wins
alpha = Team("George's Team")
beta = Team("Josh's Team")
gamma = Team("Fred's Team")
在这一点上,我遇到了关于如何着手这样做的问题。根据我的问题,我试图在Match()类中包含team类的两个实例。例如,我想调用Match()中的一个函数,并指定团队alpha和团队gamma相互竞争,然后当他们赢或输时,修改其实例对应的点、游戏等值
我该怎么做?是否可以将所有Team()实例放入一个列表,然后将该列表导入Match()类?还是有其他更优雅的方式?请提供帮助。我不确定您打算如何选择哪些球队相互比赛,但可以说这是由一个功能完成的。然后,Match可以按如下方式实现:
class Match(object):
def __init__(self, teama, teamb):
self.teama = teama
self.teamb = teamb
def play(self):
a_points = 0
b_points = 0
# code/function call to decide how many points each team gets.
self.teama.points += a_points
self.teamb.points += b_points
if a_points > b_points:
self.teama.wins += 1
else if b_points > a_points:
self.teamb.wins += 1
else:
# code for when the teams draw
我不确定你打算如何构建一些功能,比如决定团队获得多少分数,但这是一个框架,希望能对你有所帮助/为你提供一些想法
根据您的评论,如果您希望能够传入在课堂之外创建的特定团队,您可以按照以下方式进行操作:
match1=匹配(伽马,阿尔法)
。这将创建一个新的match实例,其中团队“gamma”和“alpha”将被修改。(类中的teama
和teamb
将引用这些对象。)部分答案:您可以非常简单地更新团队实例,例如通过执行alpha.wins+=1
。但是我应该如何进行pythonical操作呢?因为我不想每次团队获胜时都要硬编码,这会挫败在代码中进行编码的重要性。将此作为一个框架,是否有一种方法可以将teama设置为等效的,例如team Gamma,以便它替换团队中的所有属性和函数?