Python3 Función exec

Python3 内置函数Funciones integradas de Python3


Descripción

execEjecuta sentencias de Python almacenadas en una cadena o archivo, en comparación coneval,execpuede ejecutar código de Python más complejo.

Sintaxis

La siguiente es la sintaxis de exec:

exec(object[, globals[, locals]])

Parámetros

  • object: parámetro obligatorio, representa el código de Python que debe especificarse. Debe ser una cadena o un objeto code. Si object es una cadena, dicha cadena se analizará primero como un conjunto de sentencias de Python y luego se ejecutará (a menos que ocurra un error de sintaxis). Si object es un objeto code, simplemente se ejecuta.
  • globals: parámetro opcional, representa el espacio de nombres global (almacena variables globales). Si se proporciona, debe ser un objeto de diccionario.
  • locals: parámetro opcional, representa el espacio de nombres local actual (almacena variables locales). Si se proporciona, puede ser cualquier objeto de mapeo. Si se ignora este parámetro, tomará el mismo valor que globals.

Valor de retorno

El valor de retorno de exec siempre es None.


Ejemplo

A continuación se muestra un ejemplo del uso de exec:

Ejemplo 1

>>>exec('print("Hello World")') Hello World # Cadena de sentencia de una sola línea >>> exec("print ('example.com')") ejemplo.com # Cadena de sentencia de varias líneas >>> exec ("""for i in range(5): ... print ("iter time: %d" % i) ... """) iter time: 0 iter time: 1 iter time: 2 iter time: 3 iter time: 4

Ejemplo 2

x = 10 expr = """ z = 30 sum = x + y + z print(sum) """ def func(): y = 20 exec(expr) exec(expr, {'x': 1, 'y': 2}) exec(expr, {'x': 1, 'y': 2}, {'y': 3, 'z': 4}) func()

Resultado de salida:

60
33
34

Valor de retorno de exec

En Python,execla función se utiliza para ejecutar el código en una cadena, pero no devuelve ningún valor. Si desea obtener el valor de retorno después de ejecutar el código, puede usarevalla función oexeccombinada conlocals()oglobals()para obtener el valor de la variable.

Tenga en cuenta que usarevalyexecrequiere cuidado, especialmente cuando el código ejecutado proviene de una fuente no confiable, puede haber riesgos de seguridad.

Usarevalpara obtener el valor de retorno:

Ejemplo

code = '2 + 2'
result = eval(code)
print(result)

En este ejemplo,evalejecuta la cadena'2 + 2'y devuelve el resultado4。

El resultado de ejecución del código anterior es:

4

Usarexeccombinado conlocals()para obtener el valor de retorno:

Ejemplo

code = 'result = 2 + 2'
local_vars = {}
exec(code, globals(), local_vars)
result = local_vars['result']
print(result)

En este ejemplo,execejecuta la cadena'result = 2 + 2'y almacena el resultado enlocal_varsen el diccionario'result'en la clave.

El resultado de ejecución del código anterior es:

4

Usarexeccombinado conglobals()para obtener el valor de retorno:

Ejemplo

code = 'result = 2 + 2'
global_vars = {}
exec(code, global_vars)
result = global_vars['result']
print(result)

En este ejemplo,execejecuta la cadena'result = 2 + 2'y almacena el resultado englobal_varsen el diccionario'result'en la clave.

El resultado de ejecución del código anterior es:

4

Python3 内置函数Funciones integradas de Python3

Otras extensiones