Probleme mit gegenseitigen oder zirkulären Importen
Wenn zwei Module in Python versuchen, sich gegenseitig zu importieren, wäre ein scheinbar erwartetes Ergebnis ein erfolgreicher Import . Szenarien, in denen mehrere Module zyklische Importversuche durchführen, stellen jedoch Komplikationen dar.
Direkt im Vergleich zu Aus-Importen
Wenn ein direkter Import versucht wird (z. B. foo in bar importieren). py und import bar in foo.py), wird der Import normalerweise erfolgreich ausgeführt. Beide Module werden geladen und mit Referenzen zueinander eingerichtet, wenn die Codeausführung beginnt.
Das Problem tritt auf, wenn „von“-Importe verwendet werden (z. B. from foo import abc und from bar import xyz). In diesen Fällen erfordert jedes Modul, dass das andere bereits importiert wurde, bevor sein eigenes Modul importiert werden kann. Dadurch entsteht ein Deadlock.
Funktionieren von Zirkelimporten in Python
Trotz der Möglichkeit von Zirkelimportproblemen gibt es Fälle, in denen sie keine Probleme verursachen. Beispiele aus bestimmten Python-Versionen sind:
Python 3:
Zusätzliche Überlegungen
Star-Importe (z. B. von foo import *) können weitere Komplikationen mit sich bringen, die in den bereitgestellten Referenzen nicht behandelt werden unten.
Das obige ist der detaillierte Inhalt vonWie können zirkuläre Importe in Python vermieden oder verwaltet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!