我正在努力處理多個文件中的繼承類的定義。跨文件的類繼承
我搜索了很長時間,並找到了一些例子,但沒有解決我的問題。
讓我們深入到一個例子:
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應該知道如何定義一個子類? –