Heim > Backend-Entwicklung > Python-Tutorial > 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
Freigeben: 2024-10-20 12:37:30
Original
1009 Leute haben es durchsucht

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>
Nach dem Login kopieren

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!

Quelle:php
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