Tengo un módulo que importo a mi aplicación principal llamado pageprocs.py con una colección de funciones que generan contenido diferente y lo devuelven en una cadena. Se supone que pageprocs es una forma de permitir que los usuarios autenticados creen complementos para el tipo de contenido diferente.Funciones de proceso de una lista de cadenas en Python
Luego tengo una lista de cadenas: ['check_stats', 'build_table', 'build_ace'] que son los nombres de algunas funciones en pageprocs. Necesito ejecutar las funciones en el orden en que están en la lista y no pueden encontrar una manera de hacer esto sin usar exec():
for i in list_of_funcs:
exec('pageprocs.%s()' % i)
Esto sólo parece una mala idea en serio a mí y no es fácil para atrapar cualquier excepción en el código de los usuarios. ¿Existe alguna alternativa para ejecutar el código de esta manera o alguien tiene sugerencias sobre la generación de contenido definido por el usuario (lo pregunto porque tal vez me estoy equivocando al abordar toda la situación).
donde obtienes 'list_of_funcs'? ¿Por qué no almacena funciones en él directamente? – jfs
list_of_funcs se crea leyendo variables ubicadas en un archivo de plantilla para que los usuarios conozcan las áreas de la plantilla que necesitan contenido. El archivo de la plantilla se lee como una cadena durante la creación del contenido, por lo que los nombres de las funciones también se almacenan como una cadena. –