複数のファイルにまたがって継承したクラスの定義に苦労しています。ファイル間のクラス継承
私は長い間検索してきましたが、いくつかの例が見つかりましたが、私の問題を解決したものはありませんでした。
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")
、各例に
レッツ・ダイビングいくつかの関連する機能を含んでいます。
さまざまな組み合わせを試しましたが、いつもエラーが表示されます。もちろん、何かを変更した場合とは異なりますが、結果は同じです。それは動作しません。
私は、それぞれのファイルをお互いにインポートしようとする方法に関連していると思いますが、私はそれを行う方法を理解していないので、誰かがそれを解決し、それを私に説明してくれることを願っています。
実際には、第3のファイルはメインクラスをインポートして実行します。私はファイルfile2をインポートするので、file1.pyをインポートする必要があると思う - そうでなければ私を修正してください。
これはその部分です。しかし、もし私がオブジェクトの中に複数のネストされたモジュール/関数を作ることができる方法があるのであれば、私は興味があります。
私は例がそれをよりよく説明すると確信しています。
mc = MainClass()
mc.SubClass.SaySomething()
...ちょうどmc.SaySomething()
の代わりにすることはできますか?このようにしてコードのより良い構造を保つことができます。
これは循環インポートと呼ばれます。 file1では、smthをインポートします。 file2から、その逆も同様です。これはほとんどの場合、デザインを変更する必要があることを示しています。 – schwobaseggl
'from file2 import SubClass'は不要です。あなたは' SubClass'を使用していません。 –
私はfile1.pyがサブクラスが定義されていることを知るべきかどうか分かりません。 –