Mein Code ist ein wenig komplex, so werde ich ein Beispiel zeigen:Python Import: kann nicht importieren Name
Datei A.py:
from B import B
class A():
def __init__(self):
self.id = 5
self.b = B()
Datei B.py
from A import A
class B():
def __init__(self):
self.id = 15
self.a = A()
Dies ist die Ausnahme, die ich erhalte:
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
Alle Ich will, dass A eine Instanz von B und B enthält, um eine Instanz von A zu enthalten. Ich weiß, dass ich sie nur in eine einzige Datei konvertieren muss, aber ich möchte nicht, mein Code ist in viel größeren Maßstäben und mein Lehrer zwingt mich, mehrere kurze Skripts anstelle eines langen Codes zu behalten.
Jeder Vorschlag wird geschätzt.
„Alles, was ich will, ist eine eine Instanz von B und B enthalten eine enthalten Instanz von A "- selbst wenn Sie das zirkuläre Importproblem lösen, ist dies immer noch ein grundlegendes b Roken-Design. Ein A enthält ein B, das ein anderes A enthält, das ein anderes B usw. enthält. Zum Erstellen eines dieser Objekte müssen Sie eine unendliche Anzahl von Objekten erstellen. – user2357112
Siehe diese Frage: http://stackoverflow.com/questions/11698530/two-python-modules-require-each-others-contents-can-that-work – ScottSmudger
Ich nehme an, er könnte irgendwie eine maximale Schöpfung Rekursion Tiefe angeben, aber das ist ein ziemlich schweres Meta-Thema – Woody1193