Maison > développement back-end > Tutoriel Python > Pourquoi \'AttributeError : \'module\' object has no attribut [duplicata]\' se produit-il ?

Pourquoi \'AttributeError : \'module\' object has no attribut [duplicata]\' se produit-il ?

Mary-Kate Olsen
Libérer: 2024-10-20 12:55:02
original
821 Les gens l'ont consulté

Why does

"AttributeError : l'objet 'module' n'a pas d'attribut [dupliquer]" : Un guide complet

Cette erreur se produit lorsqu'un module Python tente pour accéder à un attribut qui n'existe pas. Dans votre cas spécifique, l'erreur est "AttributeError : l'objet 'module' n'a pas d'attribut 'hi'". Cette erreur indique que le module que vous importez (b.py) n'a pas de fonction nommée « hi ».

Comprendre les importations mutuelles de premier niveau

Le problème se pose parce que vous avez des importations mutuelles de premier niveau entre a.py et b.py. Ceci n'est généralement pas recommandé, car cela peut entraîner des importations circulaires et d'autres problèmes.

Résoudre le problème

Pour corriger cette erreur et éviter les importations mutuelles, vous pouvez importer les modules au sein des fonctions comme suit :

Dans b.py :

<code class="python">def cause_a_to_do_something():
    import a
    a.do_something()</code>
Copier après la connexion

Dans a.py :

<code class="python">import b

def hello():
    print("hello")

print("a.py")
print(hello())
b.cause_a_to_do_something()</code>
Copier après la connexion

De cette façon, a.py peut importer b.py en toute sécurité et appeler ses fonctions sans provoquer d'erreurs.

Optimisation de l'importation

Bien qu'il puisse sembler inefficace de importer dans une fonction, ce n'est en fait pas le cas. Python met en cache les modules importés, de sorte que l'opération d'importation n'est effectuée que la première fois que vous appelez la fonction. Les importations ultérieures sont une opération rapide.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal