将 "a**b" 替换为 pow(a,b)

Replace "a**b" to pow(a,b)

比如我有如下代码:

import sympy as sp
t = sp.Symbol("t")
f = t**2
print(f)

输出:t**2

我可以使用 sympy 获得输出 pow(t,2) 吗?

谢谢。

您可以尝试破解字符串打印机:

from sympy.printing import StrPrinter
StrPrinter._print_Pow = lambda self, expr: "pow(%s, %s)" % (self._print(expr.base), self._print(expr.exp))

即覆盖classStrPrinter中的方法_print_Pow,负责打印Pow个对象的字符串形式