Python模块继承

Python模块继承,python,object,inheritance,module,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。 仍然不工作您需要从文件1导入x或类y(文件1.x)来执行此操作 编

我正在努力做到以下几点:

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。
仍然不工作

您需要从文件1导入x或
类y(文件1.x)
来执行此操作


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

您需要从file1 import x执行
,或者从
class y(file1.x)
执行此操作

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

您将模块导入了命名空间<代码>x
是模块的一个属性:

import modulename

class y(modulename.x):
或者,使用
from modulename import
语法将模块中的对象绑定到本地名称空间:

from modulename import x

class y(x):
您已将模块导入到命名空间中<代码>x是模块的一个属性:

import modulename

class y(modulename.x):
或者,使用
from modulename import
语法将模块中的对象绑定到本地名称空间:

from modulename import x

class y(x):

你需要在这里给我们一个适当的例外;您编辑的代码中将不再有
namererror
。@跟踪这一点有点胡乱猜测,但可能是因为文件名中有空格而出现问题?请看下面我的答案,我对其进行了编辑,以包含有关此的更多信息;您编辑的代码中将不再有
namererror
。@跟踪这一点有点胡乱猜测,但可能是因为文件名中有空格而出现问题?请看下面我的答案,我对它进行了编辑,以包含有关这方面的更多信息。