Función compile() en Python

La función compile() en Python se utiliza para compilar código fuente en una representación interna que Python puede ejecutar más rápido que si se interpreta el código directamente. Esta función toma el código fuente como una cadena y compila ese código en un objeto código (bytecode) que luego puede ser ejecutado por el intérprete de Python.

Página de referencia: resume la firma y el uso de un método concreto. El valor está en el patrón: qué recibe, qué devuelve y en qué situación lo usarías.

Copia el ejemplo al editor, cámbiale los argumentos y comprueba la salida.


Sintaxis de compile() en Python

La sintaxis de la función compile() en Python es la siguiente:

Ejemplo

    compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
  

La función compile() toma tres argumentos principales:

  • source (código fuente) : Este es un argumento obligatorio y representa el código fuente que deseas compilar. Debe ser una cadena de texto que contiene el código Python.
  • filename (nombre de archivo) : Este argumento es opcional y se usa para especificar el nombre del archivo desde el cual se obtuvo el código fuente. Puede ser útil para mensajes de error y trazabilidad. Si no se proporciona, generalmente se usa como valor predeterminado.
  • mode (modo) : Este argumento también es opcional y especifica el modo de compilación. Puede tener uno de los siguientes valores:
    • "exec" : Para compilar un bloque de código que no devuelve ningún valor (como un archivo Python completo).
    • "eval" : Para compilar una única expresión que devuelve un valor.
    • "single" : Para compilar una única instrucción.

Después de compilar el código fuente utilizando compile() , obtendrás un objeto código (bytecode) que se puede ejecutar utilizando la función exec() o evaluar con eval() , dependiendo del modo en el que se compiló el código.


Ejemplo de compile() en Python

Aquí hay un ejemplo de cómo se utiliza compile() :

Ejemplo

    codigo = compile("print(2 + 3)", "<string>", "exec")
exec(codigo)
  

En este ejemplo, hemos compilado una única instrucción de impresión y luego la ejecutamos utilizando exec() .

La función compile() es útil en situaciones en las que deseas generar código en tiempo de ejecución, ejecutar código dinámico o evaluar expresiones de forma segura. Sin embargo, debes tener cuidado al utilizarla, ya que el código compilado se ejecuta directamente y puede representar un riesgo de seguridad si no se valida adecuadamente.

Practica Función compile() en Python en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Hola mundo

Aquí hay un ejemplo de cómo se utiliza compile().

Ejemplo

    compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)
  
Abrir en editor