为什么?数学.pi在Python中math.e常量是用小写写的?

2024-05-28 23:06:15 发布

您现在位置:Python中文网/ 问答频道 /正文

在大多数Python模块中,常量都是大写的,即:

{>

  • datetime.MINYEAR
  • datetime.MINYEAR

locale模块:

  • locale.LC_MONETARY
  • locale.LC_TIME
  • locale.DAY_1

os模块:

  • os.PRIO_PGRP
  • os.PRIO_USER

但是在math模块中,只有2个常量是小写的: math.pi和{}。在

如果math模块是第三方库,这可以解释,但它不是,它是标准库的一部分。在

是的,我知道在Python中没有可信的常量,但正如PEP 8所说,在大多数模块中都使用这种样式编写

那么,为什么这两个常量在Python中没有大写呢?有什么原因吗?在


Tags: 模块datetimetimeosmathlocalelcmonetary
2条回答

您可以提交一个建议,为math.emath.pi引入大写别名。在

因为在数学中e和pi都是小写的,我建议math.LOWERCASE_E和{}。在

PEP 8创建于2001年7月5日,而这些常量至少自1990年以来就存在,如math模块实现的this initial revision所示。tobias_k在他的评论中,IMHO做了一个很好的猜测,从数学家的角度来看,这个例子中的小写字母似乎更自然。另一个可能的原因是Python在ABC编程语言中是heavily influenced,其中{}也是小写(reference)。在

不过,我认为你是对的,这与普遍接受的编码风格规则(就像现在一样)不一致,不仅存在于Python中。在

还请注意,这不是唯一的不一致,PEP 8还提到threading模块在函数名方面与指南不一致:

mixedCase is allowed only in contexts where that's already the prevailing style (e.g. threading.py), to retain backwards compatibility.

正如jonrsharpe在其评论中所指出的,不解决这一问题的明显原因也在PEP 8中提到:

In particular: do not break backwards compatibility just to comply with this PEP!

也许添加符合准则的别名是个好主意,正如OP在下面的评论中提到的那样。在

相关问题 更多 >

    热门问题