3.4枚举应该使用UPPER_CASE_WITH_UNDERSCORES?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (46)

正如文档所述,枚举是一组绑定到唯一量值的符号名称(成员)。该PEP8说常数通常被称为UPPER_CASE,我应该使用这个符号在Python 3.4 枚举?如果是,为什么文档中的示例正在使用lower_case

提问于
用户回答回答于

以前的文档中的例子是小写的,主要是因为Enum基于使用的小写字母(或者至少它的作者做过)的一个已有的模块。

我对枚举的用法通常是沿着以下方向的:

class SomeEnum(Enum):
    ... = 1
    ... = 2
    ... = 3
globals().update(SomeEnum.__members__)

这有效地将所有成员放入模块名称空间中。

所以我会说任何风格对你来说都更舒服 - 但要选择一种风格并保持一致。

用户回答回答于

我认为他们不是UPPER_CASE,因为,它看起来很奇怪。既然你只能通过类访问枚举(例如my_enum.VALUE),如果成员是大写的,它看起来很奇怪。在C中,枚举的成员进入模块名称空间,所以当成员使用大写字母时,在使用中它看起来不奇怪(对我来说):

typedef enum {OFF, ON} lightswitch;
lightswitch bathroomLight = ON;

但在Python中,你可以通过你创建的枚举类来访问它们,并且从ClassStyle名称到ALL_CAPS看起来很奇怪。

class Lightswitch(Enum):
    OFF = 0
    ON = 1

# isn't that weird?
my_light = Lightswitch.OFF

扫码关注云+社区