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:
- 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().
- 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