En python, je dois instancier une certaine classe, connaissant son nom dans une chaîne, mais cette classe «vit» dans un module importé dynamiquement. Un exemple suit:
script de classe chargeur:
import sys
class loader:
def __init__(self, module_name, class_name): # both args are strings
try:
__import__(module_name)
modul = sys.modules[module_name]
instance = modul.class_name() # obviously this doesn't works, here is my main problem!
except ImportError:
# manage import error
un script de module chargé dynamiquement:
class myName:
# etc...
J'utilise cet arrangement pour faire en sorte que n'importe quel module chargé dynamiquement soit utilisé par la classe loader suivant certains comportements prédéfinis dans les modules chargés dynamiquement ...
module = __import__(module, fromlist=[name])a seulement fonctionné pour moi.