Quiero una manera fácil de hacer una "API de calculadora" en Python.Python: make eval safe
En este momento no me importa mucho sobre el conjunto exacto de las características de la calculadora va a apoyar.
Quiero que reciba una cadena, digamos "1+1"
y devuelva una cadena con el resultado, en nuestro caso "2"
.
¿Hay una manera de hacer eval
seguro para una cosa así?
Para empezar me gustaría hacer
env = {}
env["locals"] = None
env["globals"] = None
env["__name__"] = None
env["__file__"] = None
env["__builtins__"] = None
eval(users_str, env)
de modo que la persona que llama no puede meterse con mis variables locales (o ver).
pero estoy seguro de que estoy supervisando mucho aquí.
son eval
's problemas de seguridad que se puede fijar o hay demasiados pequeños detalles para que funcione la derecha?
Consulte también: http://stackoverflow.com/questions/594266/equation-parsing-in-python – kennytm
Es éste puede resolver su problema https://github.com/odoo/odoo/blob/d7cfa8c502f27bee5c2fccb35db47b08e3b3804b/odoo/ tools/safe_eval.py – bkmagnetron