Heim  >  Artikel  >  Backend-Entwicklung  >  Wie löse ich das Problem „AttributeError: Das Objekt „Modul“ hat kein Attribut“ in Python mit gegenseitigen Importen auf oberster Ebene?

Wie löse ich das Problem „AttributeError: Das Objekt „Modul“ hat kein Attribut“ in Python mit gegenseitigen Importen auf oberster Ebene?

Linda Hamilton
Linda HamiltonOriginal
2024-10-20 12:37:30936Durchsuche

How to Resolve the

AttributeError: 'module' object has no attribute

Beim Ausführen des Python-Moduls a.py mit gegenseitigen Importen der obersten Ebene tritt Folgendes auf: der Fehler „AttributeError: ‚module‘ object has no attribute ‚hi‘“. Dieser Fehler tritt aufgrund einer problematischen Einrichtung in den Importanweisungen beider Module auf.

In a.py importieren Sie Modul b und rufen seine Funktion hi() auf. In der referenzierten b.py gibt es jedoch kein hi-Attribut. Dies führt zu dem Fehler, der darauf hinweist, dass die Funktion hi() von b aus im Kontext von a nicht zugänglich ist.

Um dieses Problem zu beheben, ist es im Allgemeinen nicht ratsam, solche gegenseitigen Importe auf oberster Ebene durchzuführen. Erwägen Sie stattdessen den Import von Modulen innerhalb von Funktionen wie folgt:

<code class="python"># In b.py:
def cause_a_to_do_something():
    import a
    a.do_something()</code>

Indem Sie den Import innerhalb einer Funktion in b.py kapseln, ermöglichen Sie a.py, b sicher zu importieren, ohne den Fehler auszulösen. Darüber hinaus stellt dieser Ansatz sicher, dass der Importvorgang nur einmal erfolgt, obwohl die Funktion mehrmals aufgerufen wird.

Das obige ist der detaillierte Inhalt vonWie löse ich das Problem „AttributeError: Das Objekt „Modul“ hat kein Attribut“ in Python mit gegenseitigen Importen auf oberster Ebene?. 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
Vorheriger Artikel:Was ist Seitenextraktion?Nächster Artikel:Was ist Seitenextraktion?