J'ai découvert un nouveau modèle. Est ce motif bien connu ou qu'est-ce que l'opinion à ce sujet?
En gros, j'ai du mal à scrubbing en haut et en bas des fichiers source pour comprendre ce module, les importations sont disponibles et ainsi de suite, donc maintenant, au lieu de
import foo
from bar.baz import quux
def myFunction():
foo.this.that(quux)
J'ai déplacer toutes mes importations dans la fonction où elles sont effectivement utilisées., comme ceci:
def myFunction():
import foo
from bar.baz import quux
foo.this.that(quux)
Ce qui fait un peu les choses. Tout d'abord, j'ai rarement accidentellement polluer mes modules avec le contenu des autres modules. Je pourrais définir le __all__
variable pour le module, mais alors je dois mettre à jour le module évolue, et qui n'aide pas l'espace de noms de la pollution pour le code qui vit en fait dans le module.
Deuxièmement, j'ai rarement jusqu'à la fin avec une litanie des importations en haut de mes modules, la moitié ou plus de qui je n'ai plus besoin parce que j'ai refait il. Enfin, je trouve ce modèle plus facile à lire, puisque chaque nom de référence est là, dans le corps de la fonction.