私のコードは少し複雑です:のpythonはImportError:私は例を紹介しますので、名前をインポートすることはできません
ファイルA.py:
from B import B
class A():
def __init__(self):
self.id = 5
self.b = B()
ファイルB.py
from A import A
class B():
def __init__(self):
self.id = 15
self.a = A()
これは例外です:
Traceback (most recent call last):
File "F:/Project/Code/A.py", line 1, in <module>
from B import B
File "F:\Project\Code\B.py", line 1, in <module>
from A import A
File "F:\Project\Code\A.py", line 1, in <module>
from B import B
ImportError: cannot import name B
すべて私は、AにAのインスタンスを含むBとBのインスタンスを格納したいと思います。私がしなければならないことは、それらを単一のファイルに変換することですが、私のコードはもっと大きなスケールにあります私の先生は1つの長いコードの代わりに複数の短いスクリプトを保存しなければならない。
ご意見をお寄せください。
「私が望むすべてが含まれているためにBとBのインスタンスが含まれていることですインスタンスA " - たとえあなたが循環インポート問題を解決しても、これは基本的にはbです荒れたデザイン。 AにはBがあり、Bには別のBなどが含まれています。これらのオブジェクトの1つを作成するには、無限の数のオブジェクトを作成する必要があります。 – user2357112
この質問を参照してください:http://stackoverflow.com/questions/11698530/two-python-modules-require-each-others-contents-can-that-work – ScottSmudger
私は彼が何らかの形で最大の作成再帰の深さを指定できると思いますが、それはかなり重いメタトピック – Woody1193