¿Qué hace eval() de Python?

Resuelto Billjk asked hace 12 años • 12 respuestas

En el libro que estoy leyendo sobre Python, sigue usando el códigoeval(input('blah'))

Leí la documentación y lo entiendo, pero todavía no veo cómo cambia la input()función.

¿Qué hace? ¿Alguien puede explicar?

Billjk avatar Feb 22 '12 02:02 Billjk
Aceptado

La función eval permite que un programa Python ejecute código Python dentro de sí mismo.

Ejemplo de evaluación (shell interactivo):

>>> x = 1
>>> eval('x + 1')
2
>>> eval('x')
1
BYS2 avatar Feb 21 '2012 19:02 BYS2

eval()interpreta una cadena como código. La razón por la que tanta gente le ha advertido sobre el uso de esto es porque un usuario puede usarlo como una opción para ejecutar código en la computadora. Si lo tiene eval(input())y oslo importa, una persona podría escribirlo input() os.system('rm -R *')y eliminaría todos sus archivos en su directorio de inicio. (Suponiendo que tenga un sistema Unix). El uso eval()es un agujero de seguridad. Si necesita convertir cadenas a otros formatos, intente utilizar elementos que lo hagan, como int().

CoffeeRain avatar Feb 21 '2012 19:02 CoffeeRain