PEP8和Python社区规范是要使用的ALL_CAPS_CONSTANTS
。这是一个常见的视觉线索,已在C,Java,Perl,PHP,Python,bash和其他编程语言以及Shell环境中使用了数十年。但是用现代的在线说法,所有大写字母都表示喊叫。大喊是无礼的。
但是,Python与不一致ALL_CAPS_CONSTANTS
。JavaScript可能有Math.PI
,但是Python有math.pi
。没有比π更可识别或持久的常数。或者考虑sys.version_info
,您正在运行的Python版本。在你的程序的寿命100%不变-远远超过PORT
或MAX_ITERATIONS
或其他常量你定义。还是sys.maxsize
呢?平台的最大本机整数值不仅在一个或两个程序运行时恒定,而且在硬件寿命中恒定不变。
如果这些常数-包括π和e这样的常数是宇宙的基本常数,并且不会在整个永恒中变化-如果它们可以是小写字母,那么...其他常数也可以。你可以选择。
请记住,PEP8是样式指南。准则,而不是法律。甚至Python的标准库也经常违反该准则。并引用了另一个Python核心指南PEP20(又名“ Python的禅宗”):
从实际音符,当一个程序YELLY_CONSTANT
,并SHOUTY_PARAMETER
开始篦,它有助于记住,全部大写的常量通常不是真正持久的柏拉图式的理想,但在程序运行的参数。,或并没有真正的常数PORT
,也不必将它们作为独立的程序全局变量进行管理。例如,可以将它们作为程序参数的全局可访问包放入字典中:SITENAME
NUMRUNS
config = {
'port': 80,
'sitename': "Bubba's Blog",
'numruns': 100,
}
Python还有一个很好的关键字参数传递工具,可以减少使用的需要APPARENTLY_ANGRY_GLOBAL_VARIABLES
:
def process_data(sitename, port=80, numruns=100):
...
process_data("Bubba's Blog")
实际上,将从配置文件,OS环境变量,命令行参数或其他来源中读取(或应读取)许多这些值,以满足控制原理/模式的颠倒。但这又是一个更大的故事。