2016-05-26 5 views
-3

私も見えますmain.pyファイルを持っているような:クラス変数クラスモジュールでは使用できません

from game import * 
game = Game() 
game.router(); 

私はmain.pyを実行すると、私は次のエラーを取得:

ファイル「C:\ Users \ユーザーwilsond \ Dropboxの\プロジェクト\ルータ でのテストの\ game.py」、ライン81、もしgame.locationの== 5: NameError:グローバル名 『ゲーム』が定義されていない

私の質問、私は他に可変ロケーションを利用できるように行う方法ですGameクラスのモジュール?

+5

あなたが誤字を犯したような音です。代わりに 'self.location'を使用することを意味しましたか? –

答えて

1

game.locationの代わりにself.locationを使用する必要があります。 self引数は、Gameのクラスメソッドを定義するときに、Gameのインスタンスを参照するために使用されます(selfという引数を使用してインスタンス化されます)。もちろん

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

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

定義さRooms()クラスなしで、コードスニップはまだ実行可能ではありません。しかし、これはあなたのNameErrorを 'ゲーム'に修正します。

関連する問題