关于如何在 Python 中实现枚举存在一些问题。大多数解决方案最终或多或少等同于以下内容:
class Animal:
DOG=1
CAT=2
其他人提出了更复杂的构造枚举的方法,但最终往往看起来像这个例子。
根据我在 Java 和 C# 方面的经验,我可以想到这种成语的各种用途。但是,它似乎不是很 Pythonic。事实上,似乎每次有人问为什么 Python 中没有枚举时,你往往会因为没有理由尝试在像 Python 这样的语言中强制执行编译时类型安全,而对预设的回答感到有点抱怨,或者需要枚举的设计在 Python 中是多么难闻。
我的问题不是如何在 Python 中实现枚举,而是一般来说人们如何以 Python 式的方式解决那些适合枚举的问题。换句话说,您将如何解决一个问题,该问题有助于拥有具有一组离散的可能值的数据类型,而无需将您的 Java/C# 解决方案移植到 Python。