Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 如何涉及来自不同类(Python2)的两个实例_Python 2.7_Class - Fatal编程技术网

Python 2.7 如何涉及来自不同类(Python2)的两个实例

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

我正试图为我的几个朋友创建一个足球比赛计划。我现在有一个类来实例化团队,我正在编写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    = 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,以便它替换团队中的所有属性和函数?