2017-04-14 61 views
0

我希望能夠在Python中獲得str轉換函數,以充當sympy中的漂亮打印函數(或者打印出好像使用任何參數調用init_printing())。現在,如果有人調用這樣的功能,它只會改變打印到屏幕上的print功能。我如何獲得str表現爲pprint或其他選項?簡而言之,能夠以python自身的字符串和變量獲取/攔截打印輸出的方式是非常棒的。sympy中的字符串轉換如何表現得像漂亮的打印?

例如,我希望能夠做到:

from sympy import * 
x,y=symbols('x y') 
x_eq_y = Eq(x,2*y) 
x_eq_y_str = str(x_eq_y) # holds 'Eq(x,2*y)' but I want it to hold 'x = 2y' or a latex formula etc 

是有可能做到這一點?

+0

你是否願意建立一個類繼承'Eq'? –

+0

@StephenRauch當然!我打開任何建議。儘管如此,我的想法並不是只關注上面給出的具體例子。一般來說,不錯的打印功能,並讓他們的字符串不僅打印到屏幕上。 – Pinocchio

回答

1

str只是在SymPy中提供的printing functions之一。如果你想使用另一個,使用它:

x_eq_y_str = latex(x_eq_y) # get 'x = 2 y' 
x_eq_y_str = pprint(x_eq_y) # get x = 2⋅y 
x_eq_y_str = pprint(x_eq_y, use_unicode=False) # get x = 2*y