Warum tritt \'AttributeError: \'module\' object has no attribute [duplicate]\' auf?

Mary-Kate Olsen
Freigeben: 2024-10-20 12:55:02
Original
724 Leute haben es durchsucht

Why does

"AttributeError: 'module' object has no attribute [duplicate]": Eine umfassende Anleitung

Dieser Fehler tritt auf, wenn ein Python-Modul versucht um auf ein Attribut zuzugreifen, das nicht existiert. In Ihrem speziellen Fall lautet der Fehler „AttributeError: ‚module‘ object has no attribute ‚hi‘“. Dieser Fehler weist darauf hin, dass das Modul, das Sie importieren (b.py), keine Funktion mit dem Namen „hi“ hat.

Grundlegendes zu gegenseitigen Importen auf oberster Ebene

Das Problem entsteht, weil zwischen a.py und b.py gegenseitige Importe auf oberster Ebene vorliegen. Dies wird im Allgemeinen nicht empfohlen, da es zu zirkulären Importen und anderen Problemen führen kann.

Lösung des Problems

Um diesen Fehler zu beheben und gegenseitige Importe zu vermeiden, können Sie importieren Die darin enthaltenen Module funktionieren wie folgt:

In b.py:

<code class="python">def cause_a_to_do_something():
    import a
    a.do_something()</code>
Nach dem Login kopieren

In a.py:

<code class="python">import b

def hello():
    print("hello")

print("a.py")
print(hello())
b.cause_a_to_do_something()</code>
Nach dem Login kopieren

Auf diese Weise kann a.py b.py sicher importieren und seine Funktionen aufrufen, ohne Fehler zu verursachen.

Importoptimierung

Auch wenn dies möglicherweise ineffizient erscheint import innerhalb einer Funktion ist dies eigentlich nicht der Fall. Python speichert importierte Module zwischen, sodass der Importvorgang nur beim ersten Aufruf der Funktion ausgeführt wird. Nachfolgende Importe sind ein schneller Vorgang.

Das obige ist der detaillierte Inhalt vonWarum tritt \'AttributeError: \'module\' object has no attribute [duplicate]\' auf?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!