¿Cómo crear dinámicamente una función en Python?Python: crea dinámicamente la función en el tiempo de ejecución
Vi algunas respuestas aquí, pero no pude encontrar una que describa el caso más general.
considerar:
def a(x):
return x + 1
Cómo crear dicha función en la marcha? ¿Tengo que compile('...', 'name', 'exec')
? ¿Pero entonces qué? ¿Creando una función ficticia y reemplazando su objeto de código por uno del paso de compilación?
¿O debería usar types.FunctionType
? ¿Cómo?
me gustaría personalizar todo: número de argumentos, su contenido, el código en el cuerpo de la función, el resultado, ...
posible duplicado de [funciones dinámicas y anónimas verdaderos posibles en Python?] (Http://stackoverflow.com/questions/10303248/true-dynamic-and-anonymous-functions-possible-in-python) –
No creo que sea un duplicado: 'dynf = FunctionType (compile ('def f (x): return x + 3', 'dyn.py', 'exec'), globals())' y 'print dynf (1) 'rompe con' TypeError: '() no toma argumentos (se da 1)' ' –
El hecho de que la respuesta sea incorrecta no significa que esta no sea una pregunta duplicada. –