0

快速提问...

我有一个模块enemys.py,包含这样的类:

class zombie(game_object):
  "zombie"
  pass

在我的主要 python 脚本中,我首先声明 game_object 类,然后导入敌人

class game_object:
  pass
import enemies

敌人.py 脚本抱怨它找不到 game_object (继承自)。我该如何组织这个?

请注意,我希望能够编写一个game.py,import game_mechanics其中包含一个game_object的类定义,然后import enemies包含一堆game_object的子类定义。

4

1 回答 1

3

每个文件都需要导入它需要的模块。没有“超级全局范围”,您可以在其中导入模块以自动使其可用于所有其他模块。导入game_mechanics不会使其在您导入它的模块以外的任何模块中可用。如果enemies需要访问 中定义的东西,那么您必须从内部game_mechanicsimport 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

多次导入模块不会浪费额外的内存。该模块只加载一次,当您多次导入它时,您只会获得对同一模块的多个引用。

于 2012-10-27T06:20:10.063 回答