我正在努力处理多个文件中的继承类的定义。跨文件的类继承
我搜索了很长时间,并找到了一些例子,但没有解决我的问题。
让我们深入到一个例子:
file1.py:
from file2 import SubClass
class MainClass:
def __init__(self):
print("This is MainClass")
mc = MainClass()
mc.SaySomething()
file2.py:
from file1 import MainClass
class SubClass(MainClass):
def SaySomething(self):
print("This is the subclass")
我的目标是一个巨大的类分成多个文件,每个文件包含一些相关的功能。
我试了很多不同的组合,但总是得到一个错误 - 当我改变一些当然,但结果是相同的,这是不同的;它不起作用。
我想这与我试图将每个文件导入对方的方式有关,但我还没有想出如何去做,所以我希望有人能解决它,并向我解释。
实际上第三个文件是将导入主类并执行它。我猜这个文件只需要导入file1.py,因为它会导入file2 - 否则请纠正我。
好的,这是第一部分。但是,我也很好奇,如果我可以在对象中创建一些多个嵌套的模块/函数 - 对于结构的缘故。
我很确定一个例子会更好地解释它。我可以制造类似于:
mc = MainClass()
mc.SubClass.SaySomething()
...而不是仅仅是mc.SaySomething()
?我想,这样我可以保持更好的代码结构。
这被称为循环导入。在file1中,您导入了smth。从file2开始,反之亦然。这几乎总是表明你应该改变你的设计。 – schwobaseggl
'从file2导入SubClass'不需要,你没有使用'SubClass' –
我不确定file1.py应该知道如何定义一个子类? –