Fehler beim Import des Python-Projekts, zirkuläre Abhängigkeit

Der Fehler ist wie folgt:

 Der Grund kann in zirkulären Abhängigkeiten liegen:

Beschreibung der zyklischen Abhängigkeit : Unter dem Python-Projekt gibt es zwei Dateien 1.py und 2.py. Verwenden Sie in 2.py from 1 import x, um auf die Methode x von 1.py zu verweisen, und möchten Sie gleichzeitig from verwenden 2 Import in 1.py y-Methode, hier wird eine zirkuläre Abhängigkeit generiert

Lösung:

In Python muss bei gegenseitigen Referenzen zwischen Modulen auf das Problem zirkulärer Abhängigkeiten geachtet werden. Zirkuläre Abhängigkeit bezieht sich darauf, dass zwei oder mehr Module auf den Inhalt des anderen verweisen und eine geschlossene Schleife bilden.

In Ihrem Fall verweist 1.py auf x in 2.py, und Sie möchten, dass y in 2.py in 1.py referenziert wird. Wenn eine zirkuläre Abhängigkeit besteht, kann es zu Problemen beim Importvorgang kommen.

Eine übliche Methode zum Auflösen zirkulärer Abhängigkeiten besteht darin, den Code umzugestalten, um voneinander abhängige Teile in ein separates Modul zu extrahieren und direkte Zirkelverweise zu vermeiden. Sie könnten beispielsweise ein neues Modul erstellen, beispielsweise common.py, und die gemeinsamen Teile von x und y in dieses Modul einfügen. Dann verweisen 1.py und 2.py jeweils auf den Inhalt in common.py, nicht aufeinander.

Eine weitere Problemumgehung besteht darin, verzögerte Importe zu verwenden, um zirkuläre Abhängigkeiten zu vermeiden. Anstatt am Anfang eines Moduls zu importieren, können Importanweisungen dort platziert werden, wo sie benötigt werden . Dadurch können Importprobleme umgangen werden, wenn zirkuläre Abhängigkeiten auftreten.

Zusammenfassend lässt sich sagen, dass zirkuläre Abhängigkeiten vermieden werden sollten, da sie zu einer unübersichtlichen Codestruktur und potenziellen Importfehlern führen. Vermeiden Sie nach Möglichkeit direkte Zirkelverweise zwischen Modulen und erwägen Sie eine Umgestaltung Ihres Codes oder die Verwendung verzögerter Importe, um das Problem zu beheben.

Supongo que te gusta

Origin blog.csdn.net/m0_52948781/article/details/130849841
Recomendado
Clasificación