gpt4 book ai didi

python - SymPy 的 sympify().evalf() 有多安全?

转载 作者:太空狗 更新时间:2023-10-29 21:43:39 27 4
gpt4 key购买 nike

我们知道 Python 的 eval() 是邪恶的

http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html

整个 StackOverflow 的线程都建议使用 SymPy 的 evalf()

作为 Python 新手,我无法真正说服自己 evalf() 是安全的,因为我缺乏相关技能。谁能详细说明 evalf() 的作用(不同)?

最佳答案

python eval 和 sympy evalf 没有任何共同点(后者用于计算 sympy 表达式树的数值,它没有 与解析有关,而 eval 是关于解析字符串并将其作为代码进行评估)。

另一方面,sympifyeval 一样危险,因为它实际上使用了 eval

有两种使用 sympify 的基本模式,将它们混合在同一个函数中可能是个坏主意:

  • sympify(some_object) 将返回更适合在 CAS 中使用的对象表示,例如将 int(1) 转换为 sympy .整数(1)

  • sympify("some_text") 将几乎直接通过 eval 解析文本(搜索来自 sympy.parsing 的导入出现在 sympify 中并遵循它)。它更安全,因为有一些限制,但它不安全

关于python - SymPy 的 sympify(<string>).evalf() 有多安全?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16718644/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com