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
。@跟踪这一点有点胡乱猜测,但可能是因为文件名中有空格而出现问题?请看下面我的答案,我对它进行了编辑,以包含有关这方面的更多信息。