es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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()
"""

Tags:  , , ,

Answer

  1. Avatar for 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:

    exec(alguna_función)
    mi_función_aleatoria('Hola Mundo')
    

    La función exec ejecutará la función almacenada en la cadena y la función mi_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.

Comments are closed.