La dépendance circulaire peut survenir lorsque deux modules s'appuient sur les définitions de l'autre, provoquant des problèmes d'importation. Dans ce cas, nous avons deux fichiers Python : node.py et path.py. Initialement, path.py importait Node depuis node.py. Cependant, après l'ajout d'une nouvelle méthode au chemin de référencement du nœud, une dépendance circulaire s'est produite.
Pour résoudre ce problème, nous pouvons envisager plusieurs approches :
1. Importation conditionnelle :
Importez path.py uniquement dans la fonction où cela est nécessaire.
# in node.py from path import Path class Node: # ... # in path.py def method_needs_node(): from node import Node n = Node() # ...
2. Liaison tardive :
Utilisez setattr() pour attribuer la référence de classe manquante au moment de l'exécution.
# in node.py # Placeholder Path class class Path: pass # Importing path.py import path # Assigning the actual Path class after importing path.py path.Path = load_node_module('path.Path') # Implementation details omitted class Node: # ... # in path.py class Path: # ...
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!