Идентификаторы Unicode в Python?

Я хочу создать функцию Python, которая вычисляет,

alt text

и хотел бы назвать мою функцию суммирования Σ. Подобным способом, хотел бы использовать Π для продукта, и так далее. Я задавался вопросом, был ли способ назвать функцию 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)

или даже просто символ лямбды для лямбды ()!

49
задан Community 8 February 2017 в 04:23
поделиться

2 ответа

(Я тоже думаю, что это довольно круто, что может означать, что мы вундеркинды.)

Вы можете сделать это с помощью приведенного выше кода в Python 3. (По крайней мере, он работает в моем интерпретаторе Python 3.1). См.:

Но в Python 2 , идентификаторами могут быть только буквы ASCII, цифры и символы подчеркивания.

44
ответ дан 7 November 2019 в 11:40
поделиться

Python 2.x не поддерживает идентификаторы Unicode и, следовательно, не поддерживает Σ как идентификатор. Python 3.x действительно поддерживает идентификаторы Unicode, хотя многие люди столкнутся с крестом, если им придется редактировать исходные файлы, например, с идентификаторами A и Α (латинская A и греческая заглавная буква альфа). Сигма часто читается достаточно, но все же не так читабельно, как слово сигма, так зачем беспокоиться?

6
ответ дан 7 November 2019 в 11:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: