"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment résoudre la dépendance circulaire en Python ?

Comment résoudre la dépendance circulaire en Python ?

Publié le 2024-11-05
Parcourir:627

How to Resolve Circular Dependency in Python?

Dépendance circulaire en Python

Rencontrer une dépendance circulaire peut être un problème frustrant lorsque l'on travaille avec des modules Python. Dans ce scénario spécifique, nous avons deux fichiers, node.py et path.py, contenant respectivement les classes Node et Path.

Initialement, path.py a importé node.py en utilisant from node.py import *. Cependant, après avoir ajouté une nouvelle méthode à Node faisant référence à l'objet Path, l'importation de path.py a généré une erreur car Node n'a pas été défini.

Pour résoudre la dépendance circulaire, envisagez d'implémenter ce qui suit :

Utiliser l'évaluation paresseuse : au lieu d'importer un module dans un autre lors de l'initialisation, importez-le uniquement lorsque cela est nécessaire dans une fonction spécifique. Par exemple, dans node.py, importez le chemin uniquement lorsque cela est nécessaire :

# in node.py 
from path import Path
class Node 
    ...

Dans path.py, importez Node uniquement dans la méthode qui l'exige :

# in path.py
class Path
  def method_needs_node(): 
    from node import Node
    n = Node()
    ...
Déclaration de sortie Cet article est réimprimé à l'adresse : 1729326856. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3