Compilar codigo en python
Cuando se invoca a 'python' siempre se genera un fichero '.pyc', el cual contiene el bytecode correspondiente al codigo python. Este bytecode se ejecutará en la maquina virtual de python.
Si lo que queremos es generar el bytecode pero sin ejecutar, tenemos dos modulos que nos lo permiten: py_compile y compileall.
Ejecución dinamica en python
La funcion interna exec, nos permite ejecutar codigo python que obtenemos en tiempo de ejecución.
exec code[ in globals[,locals]]
code, puede ser una cadena, un fichero o bien un objeto compilado.
Hay otra función, rexec, que permite la ejecución en un entorno limitado (como en el caso de los Applets de Java).
Para compilar objetos podemos usar la función compile.
Y finalmente tenemos la función eval, que permite evaluar expresiones.
Mas información en la documentación de python.
El libreo de O'Really Python in a Nutshell, habla de exec en el punto 13.1 ('Dynamic Execution and the exec Statement') y en 13.2 sobre 'Restricted Execution'.
No hay comentarios:
Publicar un comentario