"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>
Dans a.py :
<code class="python">import b def hello(): print("hello") print("a.py") print(hello()) b.cause_a_to_do_something()</code>
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!