使用sympy.core.Add和sympy.core.Mul的继承(复制)类时出现问题

时间:2016-05-03 13:09:56

标签: python sympy

我有以下问题:

我已经通过定义

创建了我自己的类sympy.core.Add和sympy.core.Mul的副本
from sympy.core import Add, Mul

class jyrAdd(Add):    
        pass

class jyrMul(Mul):
        pass

这种复制的原因是我想为这些类添加一个颜色属性,以打印具有不同颜色的等式的不同部分。

这几乎可行。但如果我按如下方式创建表达式,则会出现问题:

ex1 = jyrAdd(2,3, evaluate = False)
ex1 = jyrMul(3,ex1, evaluate = False)
ex1 = jyrAdd(1,ex1, evaluate = False) 

前两个步骤是Ok,但在第三步之后,表达式ex1被破坏,调试器告诉Unable to get repr for class 'jyrAdd'

如果我尝试打印表达式,系统会崩溃,因为包装器无法找到显示表达式的正确方法。

如果使用sympy.core.Add

替换代码的第一行
ex1 = Add(2,3, evaluate = False)

没有问题。如果第一行是

,也没有问题
ex1 = jyrAdd(x,3,evaluate = False)

我不知道如何处理这个问题,我会感谢任何帮助。我正在使用python 2.7和sympy 0.7.5。

0 个答案:

没有答案