¿Qué hace eval() de Python?
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?
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
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 os
lo 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()
.