因此,我过去曾经按照命令维护配置,然后偶然发现python中的枚举。 以下是我以前做过的事情:
CONFIG = {
"field1": {"field11": "value11", ....},
"field2": {"field12": "value22", .....},
}
这将是全局的,并将包含我的应用程序将使用的一些配置。 然后,我使用枚举将相同的转换如下:
from enum import Enum, unique
@unique
class Config(Enum):
field1 = {"field11": "value11", .....}
field2 = {"field22": "value22", .....}
使用枚举的好处起初还很模糊,但是当我深入挖掘时,我发现枚举是不可变的,可以强制唯一性,并且它提供了一种遍历其成员的更简洁的方法。
我检查了是否在任何python第三方或标准库中使用了它。我发现其中大多数使用的类如下:
class Config:
field1 = {"field11": "value11", .....}
field2 = {"field22": "value22", .....}
所以我的问题是,枚举一个不该意外更改的配置的好选择,或者只是过分使用,可以代替使用类?
想知道哪一种被认为是最佳实践。
答案 0 :(得分:0)
在问题中使用枚举的主要优点是它允许在代码中编写符号常量,而使用字典则必须检查字典中的键,例如:
Config.field1
与
Config["field1"]
因此,区别将是语法优势,而且枚举与字典不同,它固有地是不可变的,并且与类不同,枚举也不能扩展。