Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann „AttributeError: Module Object Missing Attribute“ behoben werden, wenn versucht wird, gegenseitige Importe mit Zirkelverweisen durchzuführen?

Wie kann „AttributeError: Module Object Missing Attribute“ behoben werden, wenn versucht wird, gegenseitige Importe mit Zirkelverweisen durchzuführen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-20 12:38:30113Durchsuche

How to Resolve

AttributeError: Module Object Missing Attribute

Beim Versuch, zwei Module mit gegenseitigen Referenzen zu importieren, kann dieser Fehler auftreten: „AttributeError: ' Modul'-Objekt hat kein Attribut [Duplikat]". Dies tritt häufig auf, wenn die Modulstrukturen voneinander abhängig sind, was zu einem Zirkelverweis führt.

Erklärung

Im bereitgestellten Code versucht das Modul „a.py“. um „b.py“ zu importieren, und innerhalb von „b.py“ gibt es einen Import von „a.py“. Dadurch entsteht eine zirkuläre Abhängigkeit, die dazu führt, dass Python den „AttributeError“ auslöst.

Lösung

Um dieses Problem zu beheben, vermeiden Sie gegenseitige Importe innerhalb des Moduls der obersten Ebene. Verwenden Sie stattdessen bei Bedarf Funktionen, um Module zu importieren.

Beispiel in Python

Vorher:

<code class="python"># a.py
import b

# b.py
import a</code>

Nachher:

<code class="python"># a.py
def call_b():
  import b
  b.hi()

# b.py
def hi():
  print("hi")</code>

Auf diese Weise importiert „a.py“ nicht mehr „b.py“ auf der obersten Ebene und die zirkuläre Abhängigkeit wird unterbrochen.

Das obige ist der detaillierte Inhalt vonWie kann „AttributeError: Module Object Missing Attribute“ behoben werden, wenn versucht wird, gegenseitige Importe mit Zirkelverweisen durchzuführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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