Wie vermeide ich AttributeError in Szenarios zum gegenseitigen Import in Python?

Barbara Streisand
Freigeben: 2024-10-20 13:06:30
Original
139 Leute haben es durchsucht

How to Avoid AttributeError in Mutual Import Scenarios in Python?

AttributeError: 'module' Object Fehls Attribute in Mutual Import Scenario

In Python tritt ein häufiger Fehler auf, wenn gegenseitige Importe zwischen Modulen verarbeitet werden. Betrachten Sie das folgende Beispiel:

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

# Functions defined within a.py...

# b.py
import a

# Functions defined within b.py...</code>
Nach dem Login kopieren

Beim Ausführen von a.py kann der folgende Fehler auftreten:

AttributeError: 'module' object has no attribute 'hi'
Nach dem Login kopieren

Dieser Fehler weist darauf hin, dass a.py nicht auf das Attribut hi zugreifen kann das importierte b.py-Modul. Um den Grund für diesen Fehler zu verstehen, ist es wichtig, die Fallstricke gegenseitiger Importe auf oberster Ebene zu erkennen.

Normalerweise wird von gegenseitigen Importen abgeraten, da sie zu zirkulären Abhängigkeiten führen und den Code weniger wartbar machen können. Stattdessen empfiehlt Python, Module innerhalb von Funktionen zu importieren. Im gegebenen Beispiel kann das Problem gelöst werden, indem sowohl a.py als auch b.py wie folgt geändert werden:

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

# Functions defined within a.py...

# b.py
def hi():
    print("hi")</code>
Nach dem Login kopieren

Wenn a.py nun ausgeführt wird, wird b.py nahtlos importiert und aufgerufen die Funktion „hi“ innerhalb der Funktion „import_b_and_call_hi“. Diese Technik stellt sicher, dass gegenseitige Importe keine Abhängigkeitsprobleme verursachen.

Das obige ist der detaillierte Inhalt vonWie vermeide ich AttributeError in Szenarios zum gegenseitigen Import in Python?. 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!