Ho un modulo che importa nella mia applicazione principale denominata pageprocs.py con una serie di funzioni al suo interno che generano contenuto diverso e lo restituiscono in una stringa. pageprocs dovrebbe essere un modo per consentire agli utenti autenticati di creare plugin per il diverso tipo di contenuto.Funzioni di processo da un elenco di stringhe in Python
Ho quindi un elenco di stringhe: ['check_stats', 'build_table', 'build_ace'], che sono i nomi di alcune funzioni in pageprocs. Ho bisogno di eseguire le funzioni nell'ordine in cui sono nella lista e non riesce a trovare un modo di fare questo senza usare exec():
for i in list_of_funcs:
exec('pageprocs.%s()' % i)
Questo solo sembra una cattiva idea sul serio a me e non facile per rilevare eventuali eccezioni nel codice degli utenti. Esiste un'alternativa al codice in esecuzione in questo modo o qualcuno ha suggerimenti sulla generazione di contenuti definiti dall'utente (lo chiedo perché forse mi sto avvicinando a tutta la situazione).
dove ottieni 'list_of_funcs'? Perché non si memorizzano le funzioni direttamente? – jfs
list_of_funcs viene creato leggendo le variabili inserite in un file modello in modo che gli utenti siano a conoscenza delle aree del modello che necessitano di contenuto. Il file modello viene letto come una stringa durante la creazione del contenuto in modo che anche i nomi delle funzioni vengano memorizzati come stringa. –