Python枚举等效

时间:2010-07-14 17:36:03

标签: python enums

  

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

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

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

2 个答案:

答案 0 :(得分:15)

class Suite(object): pass

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

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

x=Heart

答案 1 :(得分:8)

这是stackoverflow

上非常相同的热门问题

修改

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

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