在这个答案中,解释了如何避免args在 SymPy 类中进行排序,例如Mul,Add等等。
对于像这里解释的这样一个新创建的类,它可以在乘以 a 时转到右侧sympy.core.numbers.Float,sympy.core.numbers.Pi或者sympy.core.numbers.Integer,例如,给出:
print D(x) * 1.
1.0*D(x)
原始表达式0.在评估时给出,而新表达式给出D(x).
为了让这个微分算子正常工作,它必须留在左边:
print D(x) * 1.
D(x)*1.0
是否有任何隐藏参数(例如_op_priority更改__mul__()优先级)告诉 SymPy 更靠左或靠右的类型?