【问题标题】:Why not to use Ωβλδεαθφψωϕϖ (non-ASCII chars) in Python code?为什么不在 Python 代码中使用 Ωβλδεαθφψωφϖ(非 ASCII 字符)?
【发布时间】:2021-01-30 19:57:03
【问题描述】:

..我发现在 python 中编写非常“数学重”的函数时,使代码更具可读性的一种方法(至少对我而言)是尽可能严格地遵循文献,包括使用希腊字母,例如Ω、θ、φ、ψ、ω、φ等

代码按预期工作,但 PyCharm 突出显示这些字符并显示“标识符中的非 ASCII 字符”。

..不参考任何 PEP(Python 编码标准)。

我要求清醒地论证为什么我应该避免在标识符中使用非 ASCII 字符。

【问题讨论】:

标签: python naming-conventions non-ascii-characters


【解决方案1】:

因为它们不包含在标准的 qwerty 键盘中,并且在您的代码中继续引用它们会很痛苦。

您最好只通过它们的 ascii 等效项(字符串 alpha 等)来引用它们,并让现代 ide 中的智能感知来处理打字。


如果您正在寻找 pep 标准,您可能需要PEP 3131

是否应允许标识符包含任何 Unicode 字母?

允许批发非 ASCII 标识符的缺点:

  • Python 将无法可靠地往返于 在屏幕或纸上进行人类可读的显示。
  • Python 将变得容易受到一类新的安全漏洞的攻击;代码并提交 补丁将更难检查。
  • 人类将无法再 验证 Python 语法。
  • Unicode 很年轻;它的问题还没有得到很好的理解和解决;工具支持薄弱。
  • 具有非 ASCII 标识符的语言使用不同的字符集和规范化 计划; PEP 3131 的选择并不明显。
  • 当数字或运算符在附近时,Unicode 双向算法会产生极其混乱的 RTL 文本显示顺序。

当然这已被接受,所以它的 pycharm 的决定,而不是 pep。

【讨论】:

  • “智能”?也许你知道一个我不知道的技巧..我可以设置 PyCharm 来转换视觉描述吗???。如果我碰巧将它们放在键盘上,那么键盘上不存在它们的论点就不是那么相关了,对吧? ;).. 我的意思是它们实际上是希腊字母表中使用的普通字母..
  • 如果您输入字母a,那么 pycharm/vscode 等 ide 往往会建议您输入 alpha,大多数项目都是作为一个团队进行的,因此您自己的键盘可能不会向群众说话
  • 当我输入“a”时,我的 PyCharm 不建议使用“alpha”...问题也开放给其他人分享他们的意见,但感谢您的回答...编辑:感谢您扩展/增加您的回答的深度,使其更相关..
  • @Vinzent - 我已经扩展了答案以包括您可能正在寻找的相关 pep 标准,我一直保持自己的想法,因为我仍然认为这有一些理由进入您看到的警告
猜你喜欢
  • 1970-01-01
  • 2011-06-20
  • 2014-09-16
  • 1970-01-01
  • 2012-05-08
  • 1970-01-01
  • 2013-03-22
  • 2014-08-19
  • 1970-01-01
相关资源
最近更新 更多