Función de compilación de Python()

La función Python compile() toma el código fuente como entrada y devuelve un objeto de código que está listo para ser ejecutado y que luego puede ser ejecutado por la función exec().

Sintaxis compilar (fuente, nombre de archivo, modo, banderas = 0, dont_inherit = False, optimizar = -1)

Parámetros:

  • Fuente : puede ser una string normal, una string de bytes o un objeto AST
  • Nombre de archivo : este es el archivo del que se leyó el código. Si no se leyó de un archivo, puede darle un nombre usted mismo.
  • Modo : el modo puede ser exec, eval o único.
  • una. eval: si la fuente es una sola expresión.
  • b. exec: puede tomar un bloque de un código que tiene declaraciones, clases y funciones de Python, etc.
  • C. single: se usa si consta de una sola declaración interactiva
  • Indicadores (opcional) y dont_inherit (opcional): valor predeterminado = 0. Se ocupa de qué declaraciones futuras afectan la compilación de la fuente.
  • Optimize (opcional) : indica el nivel de optimización del compilador. Valor por defecto -1.

Ejemplo de la función Python compile()

Ejemplo 1: ejemplo de compilación simple() en Python.

Aquí el nombre de archivo es mulstring y el modo exec permite el uso del método exec() y el método de compilación convierte la string en un objeto de código Python.

Python3

# Python code to demonstrate working of compile().
 
# Creating sample sourcecode to multiply two variables
# x and y.
srcCode = 'x = 10\ny = 20\nmul = x * y\nprint("mul =", mul)'
 
# Converting above source code to an executable
execCode = compile(srcCode, 'mulstring', 'exec')
 
# Running the executable code.
exec(execCode)

Producción:

mul = 200

Ejemplo 2: otra demostración de trabajo de compilación

Python

# Another Python code to demonstrate working of compile().
x = 50
 
# Note eval is used for single statement
a = compile('x', 'test', 'single')
print(type(a))
exec(a)

Producción:

<class 'code'>
50

Ejemplo 3: función de compilación de Python desde un archivo

En este ejemplo, tomaremos el archivo main.py con algunos métodos de visualización de strings y luego leemos el contenido del archivo y lo compilamos para codificar el objeto y ejecutarlo.

principal.py:

Python3

String = "Welcome to Geeksforgeeks"
print(String)

Código: aquí leeremos el contenido del archivo como una string y luego lo compilaremos en un objeto de código.

Python3

# reading code from a file
f = open('main.py', 'r')
temp = f.read()
f.close()
 
code = compile(temp, 'main.py', 'exec')
exec(code)

Producción:

Welcome to Geeksforgeeks

Ejemplo 4: Compilar() con eval()

Aquí eval se usa cuando la fuente es una sola expresión. 

Python3

# Another Python code to demonstrate
# working of compile() with eval.
x = 50
 
# Note eval is used for statement
a = compile('x == 50', '', 'eval')
print(eval(a))

Producción:

True

Aplicaciones: 

  1. Si el código de Python está en forma de string o es un objeto AST, y desea cambiarlo a un objeto de código, entonces puede usar el método compile().
  2. El objeto de código devuelto por el método compile() se puede llamar más tarde usando métodos como: exec() y eval() que ejecutarán código de Python generado dinámicamente.

Publicación traducida automáticamente

Artículo escrito por shubham tyagi 4 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *