有关如何在Python中实现枚举的一些问题.大多数解决方案最终或多或少等同于以下内容:
class Animal:
DOG=1
CAT=2
Run Code Online (Sandbox Code Playgroud)
其他人已经提出了构建枚举的更复杂的方法,但最终看起来和完成时往往看起来像这个例子.
根据我在Java和C#的经验,我可以想到这种习语的各种用法.但是,它似乎不是非常Pythonic.实际上,似乎每次有人问为什么Python中没有枚举时,你会倾向于对如何没有理由尝试在Python这样的语言中强制编译时类型安全的罐装响应有点呻吟,或者如何在Python中使用枚举的设计是难闻的气味.
我的问题不是如何在Python中实现枚举,而是一般人们如何处理以Pythonic方式使用枚举的问题的解决方案.换句话说,如果不将Java/C#解决方案移植到Python,您将如何解决一个问题,该问题适用于具有一组离散可能值的数据类型.