Maison >développement back-end >Tutoriel Python >Comment éviter les importations circulaires en Python et quelles sont leurs conséquences ?
Les importations circulaires surviennent lorsque deux modules ou plus tentent de s'importer les uns les autres. Bien que de simples importations puissent fonctionner correctement, des problèmes surviennent lorsqu'un module tente d'importer des noms ou des attributs spécifiques à partir d'un autre module qui tente également d'importer à partir de celui-ci.
En direct Lors des importations circulaires, les modules tentent de s'importer les uns les autres dans leur ensemble à l'aide d'instructions d'importation directe. Par exemple :
# foo.py import bar # bar.py import foo
Initialement, les deux modules se chargent sans problème. Cependant, si un module tente d'accéder à un nom qui nécessite que l'autre module soit complètement chargé, une erreur d'exécution peut se produire.
Pour éviter l'erreur d'exécution, utilisez importations indirectes, où les modules importent des attributs ou des noms spécifiques plutôt que le module entier. Par exemple :
# foo.py from bar import xyz # bar.py from foo import abc
Cette approche permet aux deux modules d'importer les attributs nécessaires sans nécessiter qu'ils soient complètement chargés.
Python 2 présente un comportement légèrement différent concernant les importations circulaires. Dans certains scénarios spécifiques, tels que l'importation depuis le haut d'un module, sans utiliser « from » et en utilisant uniquement des importations relatives, les importations circulaires peuvent fonctionner dans Python 2 mais pas dans Python 3.
Les exemples suivants illustrent des scénarios supplémentaires dans lesquels les importations circulaires sont autorisées en Python :
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!