J'ai un nom de fonction stocké dans une variable comme celle-ci:
myvar = 'mypackage.mymodule.myfunction'
et je veux maintenant appeler ma fonction comme ça
myvar(parameter1, parameter2)
Quel est le moyen le plus simple d'y parvenir?
J'ai un nom de fonction stocké dans une variable comme celle-ci:
myvar = 'mypackage.mymodule.myfunction'
et je veux maintenant appeler ma fonction comme ça
myvar(parameter1, parameter2)
Quel est le moyen le plus simple d'y parvenir?
Il est bien plus agréable de pouvoir simplement stocker la fonction elle-même, car ce sont des objets de première classe en python.
import mypackage
myfunc = mypackage.mymodule.myfunction
myfunc(parameter1, parameter2)
Toutefois, si vous devez importer le package de manière dynamique, vous pouvez y parvenir grâce à:
mypackage = __import__('mypackage')
mymodule = getattr(mypackage, 'mymodule')
myfunction = getattr(mymodule, 'myfunction')
myfunction(parameter1, parameter2)
Cependant, gardez à l’esprit que tout ce travail s’applique à la portée dans laquelle vous vous trouvez actuellement. Si vous ne les persistez pas, vous ne pouvez pas compter sur leur présence si vous quittez la portée locale.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.