Python 使用sympy subs时的奇怪行为

Python 使用sympy subs时的奇怪行为,python,sympy,Python,Sympy,我最近从Sympy0.7.4升级到了0.7.6,现在我对SUB有一些非常奇怪的行为。下面的代码 from sympy.abc import phi import sympy as sp z=sp.Symbol('z') t=sp.Symbol('t') sp.pprint((phi(z,t).diff(t,2)).subs(phi(z,t).diff(z),sp.Symbol('b')(z,t)).expand()) 给我输出 2 ∂ ───(b(z,t)) 2 ∂t (b的二阶时间导数)

我最近从Sympy0.7.4升级到了0.7.6,现在我对SUB有一些非常奇怪的行为。下面的代码

from sympy.abc import phi
import sympy as sp

z=sp.Symbol('z')
t=sp.Symbol('t')
sp.pprint((phi(z,t).diff(t,2)).subs(phi(z,t).diff(z),sp.Symbol('b')(z,t)).expand())
给我输出

2

───(b(z,t)) 2
∂t

(b的二阶时间导数) 但我预计会有结果

2

───(φ(z,t)) 2
∂t

(φ的二阶时间导数,即不可替换)


这在我以前版本的Symphy中运行得非常好。

这肯定是一个bug:

In [10]: phi(z,t).diff(t,2).subs(phi(z,t), b(z,t))
Out[10]: Derivative(b(z, t), t, t)

In [11]: phi(z,t).diff(t,2).subs(phi(z,t).diff(t), b(z,t))
Out[11]: Derivative(b(z, t), t)

In [12]: phi(z,t).diff(t,2).subs(phi(z,t).diff(z), b(z,t))
Out[12]: Derivative(b(z, t), t, t)
当原始导数的参数与
subs
导数参数不匹配时,它似乎没有考虑原始导数的参数。看来已经有报道了