从父类 python 覆盖"constants"



我有一个简单的继承设置如下:

class A:
CONST_VAR = "aaa"
# more code where CONST_VAR does not change
# ...
class B(A):
CONST_VAR = "bbb"
# more code where CONST_VAR does not change
# ...

所以在每个类中CONST_VAR确实是常量,但是它在不同的类之间明显变化。大写大小写是CONST_VAR的正确约定吗?有人能指出适当的PEP或任何风格指南吗?

我相信PEP8建议使用大写字母表示常量,但我通常将其解释为"模块级常量"。

另一方面,这是一个类变量,PEP8没有指定类变量的命名。

但是如果我们看一下Google Style Guide for Python,这里清楚地指出类常量也应该大写:

全局/类常量CAPS_WITH_UNDER

这是两个不同的常数,A.CONST_VARB.CONST_VAR。显然所有的大写字母都是正确的。

是的,所有大写都是常量的约定。参见PEP 8。在类中也是如此,您可以通过标准库和文档看到这一点。

下面是一个枚举示例:

class Color(Enum):
RED = 1
GREEN = 2
BLUE = 3

下面是另一个来自http模块:

>>> from http import HTTPStatus
>>> HTTPStatus.NOT_FOUND
<HTTPStatus.NOT_FOUND: 404>

最新更新