为什么根据 python -a(b+c) != a(-b-c)?

Why according to python -a(b+c) != a(-b-c)?

我在 python (Anaconda) 上编码,在使用 sympy 时我注意到了这个问题:

import sympy as sym

a = sym.Symbol('a')

b = sym.Symbol('b')

c = sym.Symbol('c')

-a*(b+c) == a*(-b-c)

Out[190]: False

为什么会这样?

我认为这可能与 Sympy 如何处理 Symbol 对象的重载有关。

您的语句正在比较两个 对象引用

看起来您只是在做数学运算和比较值,但这并不是幕后发生的事情。看看 gotchas.