Python 3.x 在SymPy中定义包含数值的符号

Python 3.x 在SymPy中定义包含数值的符号,python-3.x,sympy,Python 3.x,Sympy,我试图在SymPy中定义一个与pi、e和I等常量具有相同功能的常量。当给出确切的答案时,它们仍然是它们的符号,而不是对它们的价值进行评估。比如说如果我跑 2*pi 它将返回2⋅π. 如果我想要一个大概的答案,我可以跑 N(2*pi) 返回6.28318530717959 我想定义一个常数tau,其中 tau 返回τ,而 N(tau) 返回6.28318530717959 基本上我只是想定义一个新的符号τ,它等于2⋅π、 您需要以与Pi相同的方式对NumberSymbol进行子类化。只要

我试图在SymPy中定义一个与pi、e和I等常量具有相同功能的常量。当给出确切的答案时,它们仍然是它们的符号,而不是对它们的价值进行评估。比如说如果我跑

2*pi
它将返回2⋅π. 如果我想要一个大概的答案,我可以跑

N(2*pi)
返回6.28318530717959

我想定义一个常数tau,其中

tau
返回τ,而

N(tau)
返回6.28318530717959


基本上我只是想定义一个新的符号τ,它等于2⋅π、 您需要以与
Pi
相同的方式对
NumberSymbol
进行子类化。只要复制粘贴
Pi
的源代码并添加
*2
就足够了。请注意,这些对象是单例类,而不是实例

您还应该阅读pi宣言;)