类变量不可用于类模块

时间:2016-05-26 15:58:49

标签: python python-2.7

我已经创建了一个名为Game的类:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="top">
  <button class="btn">Show content</button>
</div>
<div id="drop" class="drop">
  <div class="dropdown">
    <p>Hidden content</p>
  </div>
</div>
<div class="bottom">
</div>

这个类位于自己的文件game.py中。我还有一个看起来像这样的main.py文件:

class Game:
    def __init__(self):
        self.location = 5

    def router(self):
        if game.location == 5:
            x = Rooms()
            x.room5();

当我运行main.py时,出现以下错误:

路由器中的文件“C:\ Users \ wilsond \ Dropbox \ Projects \ testing \ game.py”,第81行     如果game.location == 5: NameError:未定义全局名称“游戏”

我的问题是如何让变量位置可用于Game类中的其他模块?

1 个答案:

答案 0 :(得分:1)

您需要使用self.location代替game.location。在定义Game的类方法时,self参数用于引用Game的实例(也使用名为self的参数进行实例化)。

class Game:
    def __init__(self):
        self.location = 5

    def router(self):
        if self.location == 5:
            x = Rooms()
            x.room5();

当然,如果没有定义Rooms()类,代码片段仍然无法运行。但这会修复你的NameError为'游戏'。