Comment diviser un module Python en plusieurs fichiers?
J'ai un seul module Python qui contient 3 classes: A, A1 et A2.
A1 et A2 de dériver à partir de A. contient des fonctions qui opèrent sur A1 et A2.
Tout cela fonctionne très bien quand il est dans un .py fichier. Mais ce fichier a grandi assez long et je souhaite partager A1 et A2 de dans leurs propres fichiers. Comment puis-je partager ce fichier malgré une dépendance circulaire?
Comment à ce sujet, une aide?? stackoverflow.com/questions/19353990/...
OriginalL'auteur Adam | 2011-10-17
Vous devez vous connecter pour publier un commentaire.
modA.py:
modA1.py:
modA2.py:
modfull:
Même si Un "processus" de niveau A1 et niveau a2, vous devez être bien parce que grâce à duck-typing vous n'avez pas besoin d'importer les noms réels.
OriginalL'auteur
Option 1: briser les cycles: Mettre la classe de base dans son propre module, les classes dérivées des modules supplémentaires, et les fonctions d'exploitation sur ces classes dérivées dans encore un autre module.
Option 2: Ignorer les cycles, importer uniquement les modules/packages dans l'espace de noms global, c'est à dire:
foo.py
Ne doit jamais être importés en tant que
from foo import Bar
, il suffit d'utiliserimport foo
et reportez-vous àfoo.Bar
dans les fonctions si nécessaire.OriginalL'auteur
Je pense que le cœur de votre question, c'est que vous ne voulez pas
Cependant, c'est tout à fait bien en python. Cependant, assurez-vous que vous n'avez pas de code en dehors des fonctions/classes dans un système avec plusieurs modules, parce que l'ordre qui s'exécute dans varie selon l'endroit où vous l'importer, ce qui importe, la phase de la lune, etc.
OriginalL'auteur