Я хочу создать функцию Python, которая вычисляет,
и хотел бы назвать мою функцию суммирования Σ. Подобным способом, хотел бы использовать Π для продукта, и так далее. Я задавался вопросом, был ли способ назвать функцию Python этим способом?
def Σ (..):
..
..
Таким образом, Python поддерживает unicode идентификаторы, и если так, кто-то мог обеспечить пример для него?
Спасибо!
Исходная мотивация для этого была частью кода Clojure, который я видел сегодня, что это похоже,
(defn entropy [X]
(* -1 (Σ [i X] (* (p i) (log (p i))))))
где Σ является макросом, определенным как,
(defmacro Σ
... )
и я думал, что это было довольно прохладно.
BTW, для обращения к нескольким комментариям об удобочитаемости - с большим количеством кода статистики/ML, например, способность составить операции с символами был бы действительно полезен. (Специально для действительно сложных интегралов и др.)
φ(z) = ∫(N(x|0,1,1), -∞, z)
по сравнению с
Phi(z) = integral(N(x|0,1,1), -inf, z)
или даже просто символ лямбды для лямбды ()!
(Я тоже думаю, что это довольно круто, что может означать, что мы вундеркинды.)
Вы можете сделать это с помощью приведенного выше кода в Python 3. (По крайней мере, он работает в моем интерпретаторе Python 3.1). См.:
Но в Python 2 , идентификаторами могут быть только буквы ASCII, цифры и символы подчеркивания.
Python 2.x не поддерживает идентификаторы Unicode и, следовательно, не поддерживает Σ как идентификатор. Python 3.x действительно поддерживает идентификаторы Unicode, хотя многие люди столкнутся с крестом, если им придется редактировать исходные файлы, например, с идентификаторами A и Α (латинская A и греческая заглавная буква альфа). Сигма часто читается достаточно, но все же не так читабельно, как слово сигма, так зачем беспокоиться?