Python的枚举等价物[重复]

Posted

技术标签:

【中文标题】Python的枚举等价物[重复]【英文标题】:Python's enum equivalent [duplicate] 【发布时间】:2011-03-15 23:59:08 【问题描述】:

可能重复:What’s the best way to implement an ‘enum’ in Python?

不同索引名称列表(如 C/C++ 或 Java 中的 Enum)的 Python 习语是什么?

澄清:我希望将值的属性设置为受限范围,例如卡片组Heart, Club, Spade, Diamond。我可以用 0..3 范围内的 int 表示它,但它会允许超出范围的输入(如 15)。

【问题讨论】:

***.com/questions/36932/… 类似问题:***.com/questions/36932/… 【参考方案1】:
class Suite(object): pass

class Heart(Suite): pass
class Club(Suite): pass

等等

python 中的类是一个对象。所以你可以写

x=Heart

等等

【讨论】:

【参考方案2】:

这是*** 上非常受欢迎的问题

编辑

class Suite(set):
    def __getattr__(self, name):
        if name in self:
            return name
        raise AttributeError

s1 = Suite(['Heart', 'Club', 'Spade', 'Diamond'])
s1.Heart

【讨论】:

以上是关于Python的枚举等价物[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Python - 将枚举转换为 Django 模型。CharField 选择元组 [重复]

Python通过numpy中的二维数组枚举[重复]

Python 的枚举 Enum

Python之枚举类型

枚举的pythonic替换[重复]

Python枚举的定义和使用(enum)