Heim > Backend-Entwicklung > Python-Tutorial > Wie behebt man zirkuläre Importfehler in Python: „ImportError: Name X kann nicht importiert werden' und „AttributeError: ... aufgrund zirkulären Imports'?

Wie behebt man zirkuläre Importfehler in Python: „ImportError: Name X kann nicht importiert werden' und „AttributeError: ... aufgrund zirkulären Imports'?

Linda Hamilton
Freigeben: 2024-12-15 06:49:09
Original
563 Leute haben es durchsucht

How to Solve Circular Import Errors in Python:

Beheben von Problemen mit dem zirkulären Import: „ImportError: Name Beim Strukturieren von Code über mehrere Dateien hinweg kommt es häufig vor, dass Module voneinander abhängig sind. Wenn diese Abhängigkeiten jedoch kreisförmige Schleifen bilden, kann dies zu importbezogenen Fehlern führen.

Zirkuläre Importe verstehen

Bedenken Sie den Beispielcode:

In diesem Setup importiert main.py „entity.py“, das wiederum „physics.py“ importiert. Allerdings importiert „physics.py“ auch „entity.py“ und erzeugt so eine zirkuläre Abhängigkeit. Wenn Sie versuchen, main.py auszuführen, werden Sie auf einen ImportError stoßen, der darauf hinweist, dass der Name Ent nicht importiert werden kann.

# main.py
from entity import Ent

# entity.py
from physics import Physics
class Ent:
    ...

# physics.py
from entity import Ent
class Physics:
    ...
Nach dem Login kopieren

Problem lösen

Um dieses Problem zu beheben, brechen Sie das Zirkuläre Abhängigkeit durch Entfernen des Imports von „entity.py“ aus „physics.py“. Da die Physics-Klasse keinen Zugriff auf die Ent-Klasse erfordert, ist es für physics.py nicht erforderlich, entity.py zu importieren.

Überarbeiteter Code

Durch Eliminierung Aufgrund der zirkulären Abhängigkeit kann der Code nun fehlerfrei ausgeführt werden. Es ist erwähnenswert, dass diese Lösung die Verwendung von zirkulären Importen im Allgemeinen nicht verhindert. Es muss jedoch unbedingt sichergestellt werden, dass diese Importe den Klasseninitialisierungsprozess nicht beeinträchtigen oder zu Importzeitabhängigkeiten führen.

Das obige ist der detaillierte Inhalt vonWie behebt man zirkuläre Importfehler in Python: „ImportError: Name X kann nicht importiert werden' und „AttributeError: ... aufgrund zirkulären Imports'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage