Maison > développement back-end > Tutoriel Python > Comment puis-je résoudre les erreurs d'importation circulaire en Python ?

Comment puis-je résoudre les erreurs d'importation circulaire en Python ?

Patricia Arquette
Libérer: 2024-12-11 03:19:17
original
963 Les gens l'ont consulté

How Can I Solve Circular Import Errors in Python?

Résolution des erreurs d'importation circulaire en Python

En Python, les importations circulaires se produisent lorsque plusieurs modules tentent de s'importer les uns les autres. Cela peut entraîner des erreurs telles que « ImportError : Impossible d'importer le nom X » ou « AttributeError : ... (très probablement en raison d'une importation circulaire). »

Par exemple, considérez ce qui suit code :

main.py:

from entity import Ent
Copier après la connexion

entity.py:

from physics import Physics

class Ent:
    ...
Copier après la connexion

physics.py:

from entity import Ent

class Physics:
    ...
Copier après la connexion

Quand vous exécutez main.py, vous rencontrerez une erreur :

Traceback (most recent call last):
File "main.py", line 2, in <module>
    from entity import Ent
File ".../entity.py", line 5, in <module>
    from physics import Physics
File ".../physics.py", line 2, in <module>
    from entity import Ent
ImportError: cannot import name Ent
Copier après la connexion

L'erreur est causée par la dépendance circulaire entre physical.py et entité.py. Physics.py tente d'importerentity.py, qui est déjà en cours d'initialisation.

Pour résoudre ce problème, vous devez supprimer la dépendance à physical.py du moduleentity.py. Par exemple, vous pouvez modifierentity.py comme suit :

entity.py :

# Do not import physics.py

class Ent:
    ...
Copier après la connexion

Maintenant, lorsque vous exécutez main.py, vous ne devriez plus rencontrer d'erreur.

Pour mieux comprendre les importations circulaires, reportez-vous aux ressources fournies dans les notes de bas de page.

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.cn
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