[英]Custom printing in jupyter notebook
如果您需要更方便的方法,可以按如下方式定义包装函数。
class Equation(object):
def __init__(self, left, right, mode='latex'):
self.mode = mode
self.left = left
self.right = right
self._eq = sym.Eq(left, right)
self._latex = sym.latex(self._eq)
def __repr__(self):
if self.mode == 'latex':
return self._latex.__repr__()
elif self.mode == 'sympy':
return self._eq.__repr__()
def __str__(self):
if self.mode == 'latex':
return self._latex
elif self.mode == 'sympy':
return self.eq.__str__()
def eq(self):
return self._eq
def latex(self):
return self._latex
@property
def mode(self):
return self._mode
@mode.setter
def mode(self, val):
self._mode = val
@property
def left(self):
return self._left
@left.setter
def left(self, val):
self._left = sym
@property
def right(self):
return self._right
@right.setter
def right(self, val):
self._right = val
# end of class
如果要打印等式,则需要使用sympy.Eq
。 =
运算符只是在Python中赋值变量,在您的示例中,Python变量R_r
被赋值给SymPy表达式(c_1 + (c_2*x/G) + c_3*V)*G
通常在Python中,没有与对象及其分配的变量的反向关联。 表达式无法“知道”它被分配给名为R_r
的变量。
相反,您需要创建一个名为R_r
的符号并使用Eq(R_r, (c_1 + (c_2*x/G) + c_3*V)*G)
。
另见http://docs.sympy.org/latest/tutorial/gotchas.html和http://nedbatchelder.com/text/names.html 。
你可以使用sympy.printing.latex。
有关更多信息,请参阅以下链接。
http://docs.sympy.org/dev/modules/printing.html?highlight=sympy.printing#module-sympy.printing.latex
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.