Python模块化继承

时间:2013-12-15 10:21:14

标签: python object inheritance module

我正在尝试执行以下操作:

File 1:
  class x:
    def somefunc(self):
      # Some code
      ect...

File 2:
  import File 1
  # Inherits x
  class y(File1.x):
      # Some code
      ect...

但这会引发错误:

  

“名称'x'未定义”

编辑:将x更改为File1.x。 仍然没有工作

2 个答案:

答案 0 :(得分:4)

您已将模块导入您的命名空间; x是模块的一个属性:

import modulename

class y(modulename.x):

或者,使用from modulename import语法将模块中的对象绑定到本地命名空间:

from modulename import x

class y(x):

答案 1 :(得分:0)

您需要from file1 import xclass y(file1.x)来完成这项工作。

编辑:确保文件名中没有空格。也许这只是你问题中的一个错字,但在File2的顶部你是import File 1而不是import File1。如果与File1对应的Python模块的名称确实包含一个或多个空格,则应在文件名和import语句中删除它们(或用下划线替换它们)。正如this question的已接受答案中所述,文件名用作导入模块的标识符,而Python标识符不能包含空格。