Bonjour à tous,
En écrivant mon code, je me retrouve très souvent avec des imports cycliques (le module A importe le module B qui importe le module A). Je me débrouille pour que ca marche, mais je sais que c'est une pratique qui devrait être découragée.
Existe-t'il des principes généraux de conception pour éviter que cela arrive, ou est-ce une chose à réaliser au cas par cas ?
Voici quelques unes des raisons qui m'amènent à utiliser les imports cycliques et ce que j'imagine pouvoir faire pour l'éviter:
- Detection de type: une méthode du module A utilise un if obj.__class__ = classe_derivee_dans_le_module_B. Je pourrais dériver la methode dans le module B, mais parfois ce if ne sert qu'a éviter une seule instruction et il est dommage d'avoir deux fonctions quasiment identiques (surtout que ce genre de if est surtout utilisé pour débugger)
- Utiliser des petites fonctions simples. Dans ce cas, je suis censé creer un module C pour y mettre ces fonctions, et importer seulement ce module depuis B. Mais il est parfois plus naturel de mettre ces fonctions dans le module B (car les taches qu'elles réalisent sont intuitivement associées aux objets de B).
Merci d'avance pour votre éclairage sur ce sujet.
Partager