为什么在Python中math.pi和math.e常量是用小写字母编写的?

为什么在Python中math.pi和math.e常量是用小写字母编写的?,python,math,constants,uppercase,pep8,Python,Math,Constants,Uppercase,Pep8,在大多数Python模块中,常量都是大写的,即: datetime模块: datetime.MINYEAR datetime.MINYEAR locale模块: locale.LC\u MONETARY locale.LC\u时间 locale.DAY\u 1 os模块: os.PRIO\u PGRP os.PRIO\u用户 但是在math模块中,只有两个常量是用小写字母写的: math.pi和math.e 如果math模块是第三方库,则可以解释这一点,但它不是,而是标准库的一部分

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

datetime
模块:

  • datetime.MINYEAR
  • datetime.MINYEAR
locale
模块:

  • locale.LC\u MONETARY
  • locale.LC\u时间
  • locale.DAY\u 1
os
模块:

  • os.PRIO\u PGRP
  • os.PRIO\u用户
但是在
math
模块中,只有两个常量是用小写字母写的:
math.pi
math.e

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

是的,我知道Python中没有真正的常量,但正如

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

是在2001年7月5日创建的,而这些常量至少自1990年以来就存在,这可以从
数学
模块实现中看出。在他的评论中,IMHO做出了一个很好的猜测,从数学家的角度来看,这种情况下的小写似乎更自然。另一个可能的原因是Python是由ABC编程语言编写的,在这种语言中,
pi
也是小写的()

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

还请注意,这不是唯一的不一致之处,还提到
线程
模块在函数名称方面与指南不一致:

mixedCase仅在已经是主流样式(例如threading.py)的上下文中允许,以保持向后兼容性

不解决这一问题的明显原因是,正如在其评论中所指出的,在以下内容中也提到了:

特别是:不要仅仅为了遵守本PEP而破坏向后兼容性

正如OP在下面的评论中提到的那样,添加符合指导原则的别名可能是一个好主意。

是在2001年7月5日创建的,而这些常量至少自1990年以来就存在,这可以从
数学
模块实现中看出。在他的评论中,IMHO做出了一个很好的猜测,从数学家的角度来看,这种情况下的小写似乎更自然。另一个可能的原因是Python是由ABC编程语言编写的,在这种语言中,
pi
也是小写的()

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

还请注意,这不是唯一的不一致之处,还提到
线程
模块在函数名称方面与指南不一致:

mixedCase仅在已经是主流样式(例如threading.py)的上下文中允许,以保持向后兼容性

不解决这一问题的明显原因是,正如在其评论中所指出的,在以下内容中也提到了:

特别是:不要仅仅为了遵守本PEP而破坏向后兼容性


正如OP在下面的评论中提到的那样,添加符合指导原则的别名可能是一个好主意。

您可以提交一份提案,为
math.e
math.pi
引入大写别名


因为在数学中,e和pi是小写的,所以我建议
math.lowercase\u e
math.lowercase\u pi
你可以提交一份提案,为
math.e
math.pi
引入大写别名


因为在数学中e和pi是小写的,我建议
math.lowercase\u e
math.lowercase\u pi

注意“通常”;“愚蠢的一致性是小头脑的妖精”。另外,请记住,如果
math
是在当前样式设计之前以这种方式编写的,而没有真正好的理由进行更改(并破坏所有已经使用的代码,例如
math.e
),那么它将被搁置。我的猜测很简单,
pi
e
在数学公式中是用小写字母编写的(π是一个小希腊字母π),所以他们倾向于与之保持一致。@Trimax我认为大多数人的键盘上没有π,因此这将非常不方便。在Python 3中,可以定义
π=数学.pi
(在OS X上是Alt-P),但这似乎是在炫耀!@LukasGraf:什么?为什么会是这种情况?Python浮点是32位或64位Python上的C双精度,并且无论Python编译为32位还是64位,其定义都具有相同的精度。注意“通常”;以及“愚蠢的一致性是小头脑的妖怪”此外,请记住,如果
math
是在当前样式设计之前以这种方式编写的,而没有真正好的理由进行更改(并破坏所有已经使用的代码,例如
math.e
),那么它将被单独留下。我的猜测很简单,
pi
e
是用小写字母写在数学公式中的(π是一个小希腊字母π),所以他们倾向于与之保持一致。@Trimax我认为大多数人的键盘上没有π,因此这将非常不方便。在Python 3中,可以定义
π=数学.pi
(在OS X上是Alt-P),但这似乎是在炫耀!@LukasGraf:什么?为什么会这样?Python浮点是32位或64位Python上的C双精度浮点,并且定义的精度相同,无论Python是编译为32位还是64位。
threading
模块有很多复杂性和复杂性注意:从Python2.6开始,此模块提供符合PEP 8的别名和