Tengo una variable que el nombre exacto de una función, pero en formato de cadena. Por ejemplo…
ran_test_opt = "random_aoi"
y la función es
def random_aoi(): logging.info("Random AOI Test").
Se recibe de un archivo de configuración y, por lo tanto, no se puede cambiar. ¿Hay alguna manera de convertir la cadena en un formato al que pueda llamar la función? es decir
ran_test_opt()
que ejecutaría la función random_aoi.
Claro, puedes usar globals
:
func_to_run = globals()[ran_test_opt] func_to_run()
O, si está en un módulo diferente, puede usar getattr
:
func_to_run = getattr(other_module, ran_test_opt) func_to_run()