abc¶
此模块将所有拉丁字母和希腊字母导出为符号,因此您可以方便地进行
>>> from sympy.abc import x, y
而不是稍微更笨拙的外观
>>> from sympy import symbols
>>> x, y = symbols('x y')
注意事项¶
截至撰写本文时,名称 O
、S
、I
、N
、E
和 Q
与 SymPy 中定义的名称发生冲突。如果你从 sympy.abc
和 sympy
同时导入它们,第二个导入将“胜出”。这只对 * 导入有影响,这种导入应仅用于交互式会话和一次性脚本等短期代码,这些代码不会持续到下一次 SymPy 升级,届时 sympy
可能包含一组不同的名称。
2. This module does not define symbol names on demand, i.e.
from sympy.abc import foo
will be reported as an error because
sympy.abc
does not contain the name foo
. To get a symbol named foo
,
you still need to use Symbol('foo')
or symbols('foo')
.
You can freely mix usage of sympy.abc
and Symbol
/symbols
, though
sticking with one and only one way to get the symbols does tend to make the code
more readable.
该模块还定义了一些特殊名称,以帮助检测哪些名称与默认的 SymPy 命名空间冲突。
_clash1
定义了所有与 SymPy 对象冲突的单字母变量;_clash2
定义了多字母冲突的符号;而 _clash
是两者的并集。如果在 sympification 期间希望这些名称对应的是符号而不是非符号对象,可以将这些传递给 locals
。
示例
>>> from sympy import S
>>> from sympy.abc import _clash1, _clash2, _clash
>>> S("Q & C", locals=_clash1)
C & Q
>>> S('pi(x)', locals=_clash2)
pi(x)
>>> S('pi(C, Q)', locals=_clash)
pi(C, Q)