En python, tengo que crear una instancia de cierta clase, sabiendo su nombre en una cadena, pero esta clase 'vive' en un módulo importado dinámicamente. A continuación se muestra un ejemplo:
script de clase de cargador:
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
script de algún módulo cargado dinámicamente:
class myName:
# etc...
Utilizo esta disposición para hacer que cualquier módulo cargado dinámicamente sea utilizado por la clase loader siguiendo ciertos comportamientos predefinidos en los módulos cargados dinámicamente ...
module = __import__(module, fromlist=[name])Solo funcionó para mí.