Python3 Función exec
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
Ejemplo 2
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
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
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
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:
4Otras extensiones