私は、2つの関連する大きなPythonクラスが存在するため、それらを別々のファイルに入れている状況があります。たとえば、クラスはコブラとラットです。Pythonでインポートループを中断する方法
ラブのメソッドをCobraのメソッドから呼び出す必要があり、その逆もあります。 これはCobraでRat.pyとCobraでRatをインポートする必要があります
これはインポートループを作成し、エラーを出します。カントはコブラの中にコブラを輸入します。
これを修正するには?
Cobra.py:
import Rat
class Cobra():
def check_prey(self, rat):
# Some logic
rat.foo()
Rat.py:
import Cobra
class Rat():
def check_predator(self, snake):
# some_logic ..
snake.foo()
あなたが表示するコードのどれもその問題を示していません。 –
これは起こりません、2つのクラスはお互いを知ることができません。 'Rat'と' Cobra'クラスを使用している場合、共通の基本クラス 'Animal'はどうですか?この方法で 'Rat'と' Cobra'の両方で 'Animal'をインポートできます。 –
「2つのクラスはお互いを知ることができません」というのは間違っています。ナビゲーションの双方向性はOOの基本的な特徴であり、ほとんどのOO言語、C++、Java、C#で利用可能です。 –