注意:这是Math Stack Exchange 中此问题的副本。我必须首先在 Math StackExchange 中提出问题,因为StackOverflow 没有 MathJax。但是,几乎所有 SymPy 问题都在 StackOverflow 上。有关所需输出的排版,请参阅 Math Stack Exchange 版本。Math StackExchange 上的一位编辑建议我在这里交叉发布它。
在 Jupyter Notebook 中,如果我们执行此代码:
import sympy as sp
sp.init_printing()
x,y=sp.symbols('x,y')
x**2+sp.sin(y)
由于SymPy 的漂亮打印过程,我们将获得一个不错的输出,无需进一步编码,看起来像
现在假设我们这样做:
class MetricSpace:
def __init__(self, M, d):
self.M = M
self.d = d
def __repr__(self):
return f"$({self.M}, {self.d})$ {self.__class__.__name__}"
Re,d=sp.symbols(r'\Re,d')
MetricSpace(Re,d)
那么我们得到的输出是
如果我们这样做
from IPython.core.display import Markdown
Markdown(repr(MetricSpace(Re,d)))
然后我得到所需的输出,看起来像
我们如何编写上述代码,以便 SymPy 的漂亮打印机在 Jupyter notebook 中提供所需的输出,而无需将其包装在 中Markdown(repr(...))
?
相关分类