我已经写了大约3年的Python 2代码,虽然我长时间以来就知道枚举,但我们开始在项目中使用它们(回溯 - pypi包enum34)。
我想了解何时使用它们。
我们开始使用它们的一个场景是将一些Postgres数据库级别的枚举映射到Python枚举。因此,我们有了这个枚举类。
class Status(enum.Enum):
active = 'active'
inactive = 'inactive'
但是当使用它们时,我们最终使用它们像这样:
if value == Status.active.value:
...
因此,在这种情况下使用枚举不如只使用更简单的类,就像这样:
所以在这种情况下,使用枚举比使用一个更简单的类来说没什么帮助。
class Status(object):
active = 'active'
inactive = 'inactive'
因为我们可以更轻松地使用它,例如value == Status.active
。
到目前为止,我发现这个功能只有在文档字符串中才有用,虽然并不像我希望的那样有用。我可以声明我的形式参数期望一个Status枚举的成员,而不是明确地说允许的值是“active”和“inactive”(当存在更多状态时更有帮助)。
所以我真的不知道什么是它们确切的用例 - 我不知道它们比字符串常量好在哪里。
简而言之:何时使用枚举?
Status
中定义的常量之一”。 - 5gon12eder