我想构建一个 Python 函数来计算,
并想将我的求和函数命名为 Σ。以类似的方式,想将 Π 用于产品,等等。我想知道是否有办法以这种方式命名 python 函数?
def Σ (..):
..
..
也就是说,Python 是否支持 unicode 标识符,如果支持,有人可以提供一个例子吗?
谢谢!
最初的动机是我今天看到的一段 Clojure 代码,看起来像,
(defn entropy [X]
(* -1 (Σ [i X] (* (p i) (log (p i))))))
其中 Σ 是定义为的宏,
(defmacro Σ
... )
我觉得这很酷。
顺便说一句,解决一些关于可读性的评论——例如,对于大量统计/ML 代码,能够使用符号组合操作将非常有帮助。 (特别是对于非常复杂的积分等)
φ(z) = ∫(N(x|0,1,1), -∞, z)
对比
Phi(z) = integral(N(x|0,1,1), -inf, z)
甚至只是 lambda() 的 lambda 字符!
请您参考如下方法:
(我觉得这也很酷,这可能意味着我们是极客。)
您可以使用 Python 3 中的上述代码执行此操作。(它至少在我的 Python 3.1 解释器中有效。)参见:
- http://docs.python.org/py3k/reference/lexical_analysis.html#identifiers
- http://www.python.org/dev/peps/pep-3131/
但在 Python 2 中,标识符只能是 ASCII 字母、数字和下划线。
