Maison  >  Article  >  développement back-end  >  Comment résoudre les dépendances circulaires en Python avec deux classes dépendantes ?

Comment résoudre les dépendances circulaires en Python avec deux classes dépendantes ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-19 16:33:01948parcourir

How to Resolve Circular Dependencies in Python with Two Dependent Classes?

Dépendance circulaire en Python avec deux classes

En Python, vous pouvez rencontrer un problème de dépendance circulaire lorsque deux modules s'importent mutuellement. Par exemple, considérons que vous disposez de deux fichiers, node.py et path.py, définissant respectivement les classes Node et Path.

À l'origine, path.py importait Node à l'aide de node.py import *. Cependant, après avoir ajouté une nouvelle méthode dans Node qui utilise Path, vous rencontrez une exception lors de l'importation de path.py, indiquant que Node n'est pas défini.

Pour résoudre cette dépendance circulaire, envisagez l'approche suivante :

Une option consiste à importer un seul des modules (dans ce cas, path.py) dans la fonction/méthode spécifique de l'autre module (node.py) là où cela est nécessaire. Cette approche fonctionne bien si vous n'avez besoin de la dépendance que dans un nombre limité de fonctions :

<code class="python"># in node.py
from path import Path

class Node:
    ...

# in path.py
class Path:
    def method_needs_node():
        from node import Node
        n = Node()
        ...</code>

En important node.py uniquement dans la méthode method_needs_node(), vous évitez le problème de dépendance circulaire.

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!

Déclaration:
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