Au fil du temps, j'ai constitué une collection de fonctions utilitaires pour diverses choses.
J'aimerais les mettre toutes dans un package, avec une structure un peu plus élaborée qu'un simple fichier contenant toutes les fonctions.
Certaines de ces fonctions sont écrites en supposant que certains packages ont été importés, par exemple j'ai plusieurs fonctions utilitaires pour numpy
et pandas
qui supposent quelque chose comme import numpy as np
Évidemment je n'utiliserai pas ce package hypothétique comme from import *
mais je ne veux pas non plus nuire aux performances.
Donc si j'ai une fonction utilitaire numpy
, devrais-je ajouter ceci à chaque fonction
# mypkg.np.utils
import sys
def np_util_fn(...):
if 'np' not in sys.modules: import numpy as np
# rest of func
ou
# mypkg.np.utils
import sys
if 'np' not in sys.modules: import numpy as np
def np_util_fn(...):
# rest of func
quel est le plus performant si j'utilise une autre partie de ce package? par exemple from pkg.other.utils import fn