2016-05-16 52 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.除此之外,没有理由说不。