SymPy:安全地解析字符串
SymPy配备了可以将任意字符串解析为SymPy表达式的nice sympify()函数。但它有两大缺点:SymPy:安全地解析字符串
- 它是不是安全,因为它依赖于臭名昭著的eval()
- 它会自动简化了读表达。例如sympify(“二项(5,3)”)将返回表达式10
所以我的问题是:
首先,是有办法“只是解析”的字符串,没有任何附加的计算?我想达到这样的效果:
latex(parse('binomial(5,3)')) #returns '{\\binom{5}{3}}'
其次,有没有sympify一个接受的方式(即分析和计算)任意用户生成的字符串,而其余的安全吗?它是由SymPy Gamma完成的,所以在实践中是可能的,但问题是需要多少肮脏的工作。
回答:
看看SymPy解析模块中的内部函数。
没有官方的方法来做到这一点。我们需要重写sympify以避免eval。请注意,SymPy gamma只使用sympify。它仍然安全,因为它在App Engine上进行了沙盒处理。
以上是 SymPy:安全地解析字符串 的全部内容, 来源链接: utcz.com/qa/261786.html