【发布时间】:2018-02-10 18:27:05
【问题描述】:
PEP 8 prescribes那个
常量通常是在模块级别定义的,并写在所有 用下划线分隔单词的大写字母。例子包括
MAX_OVERFLOW和TOTAL。
我知道这只是一个命名约定,但我很想知道是否有官方或广泛接受的定义来说明什么是常量和半私有变量。
这仅限于您可能称之为mathematical constants 的内容吗? (即float、int、complex)
或者它会包括在模块级别定义的 datetime.date 对象或字符串之类的东西吗?带有混合类型键/值的字典怎么样?如果答案是否定的,是否应该将这些类型的对象定义为带有_leading_underscore 的(准)私有变量?
【问题讨论】:
-
Python 实际上没有真正的常量。命名约定只是为了便于阅读。
-
本质上,由于 Python 没有实际的“常量”,因此将一些模块级对象(不限于数学常量)大写只是向那些阅读您的代码的人发出信号“不要搞砸这个,这应该“不改变”
-
就像在所有编程语言中一样,常数只是不变的东西。
-
这里是一个关于常量使用的问题的链接。 the-benefits-of-constants。在其他语言中它有一个好处,但在 python 中它只是一种说“不要改变这个”的方式
-
@BradSolomon:嗯,常量应该是常量。 “私有”和“常量”是完全独立的概念,您可以将
_FOO用于私有常量。
标签: python python-3.x pep8