【问题标题】:I set evaluate=False, buy SymPy's parse_expr still evaluates the expression我设置 evaluate=False,买 SymPy 的 parse_expr 仍然计算表达式
【发布时间】:2021-05-02 12:58:07
【问题描述】:

我试图不评估表达式,但它正在 无论如何都要评估。

这个: parse_expr("sqrt(I**2)", evaluate=False)

返回: i

为什么会这样?有办法改吗?

【问题讨论】:

  • evaluate=False 参数的作用有限,还有许多函数仍会计算,例如 sqrt

标签: python sympy evaluate


【解决方案1】:

与其依赖标志,不如尝试在上下文中解析字符串:

>>> from sympy.core.parameters import evaluate
>>> with evaluate(0):
...  parse_expr('sqrt(I**2)')
...
sqrt(I**2)
>>> _.args
(I**2, 1/2)

【讨论】:

    猜你喜欢
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-01
    相关资源
    最近更新 更多