Heim >Backend-Entwicklung >Python-Tutorial >Warum tritt \'AttributeError: \'module\' object has no attribute [duplicate]\' auf?
"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>
In a.py:
<code class="python">import b def hello(): print("hello") print("a.py") print(hello()) b.cause_a_to_do_something()</code>
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!