2016-05-16 24 views
2

我正在學習機器學習,並且記錄我的代碼,我將在Jupyter/IPython筆記本中的代碼旁邊編寫我的函數的LaTeX數學版本。數學定義包括許多希臘符號,所以我認爲我不妨在函數和變量名稱中使用希臘符號,因爲python中可能會這樣做。這是不好的做法嗎?在python不好的練習中是unicode標識符嗎?

+2

你期望別人想要修改代碼嗎?我認爲將來的維護者在標識符中使用非ASCII字符是不禮貌的。如果這只是爲了你,儘管爲你工作。請注意,Python 2不支持非ASCII標識符。 – senshin

+1

這個問題可能因爲主要基於觀點而被關閉...但IMO,使用非ASCII標識符的代碼在簡單的文本編輯器中使用並不方便,特別是如果您沒有相應的鍵盤映射或組合鍵設置。 –

+1

@ PM2Ring'__future__'導入用於切換不帶'u'前綴的字符串是否被視爲Unicode。沒有'__future__'導入來切換Python 2中是否支持Unicode _identifiers_。 – senshin

回答

4

似乎在這些假設下很好的使用情況:

  • 觀衆數學精通,
  • 你使用了大量的Jupyter筆記本電腦的功能,如在線繪圖和 表顯示(如大熊貓)以便在筆記本外部使用代碼 是不太可能的,它是應用程序代碼而不是其他人將使用的庫。

提示:在筆記本電腦中輸入希臘字母很簡單。 只需輸入LaTeX數學符號和TAB。 例如,鍵入:

\pi 

,然後TAB鍵來獲得一個π。

2

這就是official style guide不得不說:

對於Python 3.0及以後,下面的政策規定爲 標準庫(見PEP 3131):在Python 標準庫中的所有標識符必須使用只有ASCII碼的標識符,並且應儘可能使用英文單詞(在很多情況下,縮寫和 使用的技術術語不是英語)。另外,字符串 文字和註釋也必須是ASCII。唯一的例外是 (a)測試用例測試非ASCII功能,(b) 作者的名稱。作者的名字不是基於拉丁字母MUST 提供他們的名字的拉丁音譯。

鼓勵開放源碼項目與全球受衆採取類似的政策。

換句話說:如果您針對的是全球受衆,那麼使用ascii-only會被認爲是更好的做法。如果代碼只會被你的團隊閱讀,這是一個偏好問題。

1

真的,這是個人意見的問題。請記住,變量名稱的Unicode字符支持僅在Python 3中支持,因此請確保任何外部庫支持Python 3.除此之外,沒有理由說不。