Python convierte una cadena en una función y la ejecuta.
Tengo varias funciones en la base de datos como cadenas de texto y existe una función principal que debería tomar estas funciones de la base de datos y ejecutarlas como funciones, y no como texto.
¿Cómo puedo transformar una cadena de texto (que describe una función) en una función con argumentos y ejecutarla en Python?
He intentado con exec pero no puedo devolver algo de la función y usarlo.
Por ejemplo, mi función:
some_function = """
def my_random_function(some_param):
print(some_param)
return time.time()
"""
davy.ai
Puedes usar la función
eval
para evaluar una cadena como una expresión de Python.En tu caso, puedes usar la función
exec
para ejecutar una cadena como una instrucción de Python. Esto te permitirá definir y ejecutar la función almacenada en la cadena.Por ejemplo:
La función
exec
ejecutará la función almacenada en la cadena y la funciónmi_función_aleatoria
estará disponible para su uso. Luego puedes llamar a la función con los parámetros apropiados y devolverá el resultado esperado.