0

簡単な質問...

次のようなクラスを含むモジュールenemies.pyがあります。

class zombie(game_object):
  "zombie"
  pass

メインのPythonスクリプトでは、最初にgame_objectクラスを宣言してから、敵をインポートします

class game_object:
  pass
import enemies

enemies.pyスクリプトは、(継承元の)game_objectが見つからないと文句を言います。これを整理するにはどうすればよいですか?

import game_mechanics注意点として、game_objectのクラス定義を含むgame.pyを記述できるようにしたいと思いますimport enemies。次に、game_objectのサブクラス定義の束を含みます。

4

1 に答える 1

3

各ファイルは、必要なモジュールをインポートする必要があります。モジュールをインポートして、他のすべてのモジュールで自動的に使用できるようにする「スーパーグローバルスコープ」はありません。インポートgame_mechanicsしても、インポートしたモジュール以外のモジュールでは使用できません。でenemies定義されたものにアクセスする必要がある場合は、内部から実行(または必要なものをインポート)game_mechanicsするimport game_mechanics必要があります。例:game_mechanicsenemies

# game_mechanics.py
class game_object(object):
   pass

# enemies.py
from game_mechanics import game_object
class special_object(game_object):
   pass

モジュールを複数回インポートしても、余分なメモリを浪費することはありません。モジュールは1回だけ読み込まれ、複数回インポートすると、同じモジュールへの複数の参照を取得するだけです。

于 2012-10-27T06:20:10.063 に答える