在Sympy打印中删除额外的括号

时间:2014-07-23 15:58:07

标签: ipython-notebook sympy

使用Sympy打印时,某些符号表达式包含可能不太合乎需要的括号。如Printing System Documentation中所述,sympy.latex函数有一个参数fold_func_brackets,它将删除这些括号。

如何在打印到屏幕时(例如在IPython-notebook或终端中)获得相同的功能。例如

from sympy import *
init_printing()
a, b = symbols('a, b')
cos(a) + sin(b)

结果是sin(b) + cos(a)。但是,我希望它打印:sin b + cos a没有括号。

可以这样做吗?

1 个答案:

答案 0 :(得分:0)

没有内置的方法可以做到这一点,但您可以很容易地修改打印机的子类,并将其作为自定义打印机传递给init_printing(pretty_printer=Printer)。除了更改使用prettyForm.FUNC的调用之外,您希望将PrettyPrinter子类化并覆盖_print_Function相同。

如果你想为SymPy打印机添加一个选项,我们可能会接受拉取请求。