„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > 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?

Veröffentlicht am 08.11.2024
Durchsuche:556

How to Resolve the \

AttributeError: 'module' object has no attribute

Beim Ausführen des Python-Moduls a.py mit gegenseitigen Importen auf oberster 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 auf die Funktion hi() von b aus im Kontext von a nicht zugegriffen werden kann.

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:

# In b.py:
def cause_a_to_do_something():
    import a
    a.do_something()

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.

Freigabeerklärung Dieser Artikel wird unter folgender Adresse abgedruckt: 1729398916 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3