Python枚举等效

Python's enum equivalent

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What’s the best way to implement an ‘enum’ in Python?

什么是Python熟语,用于不同索引的名称(如C/C++或Java中的枚举)?

说明:我希望将值的属性设置为限制范围,如Card Suites Heart, Club, Spade, Diamond。我可以用一个0..3范围内的int来表示它,但是它允许超出范围的输入(比如15)。


1
2
3
4
class Suite(object): pass

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

等。

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

1
x=Heart

等。


这里有一个关于stackoverflow的非常常见的问题

编辑:

1
2
3
4
5
6
7
8
class Suite(set):
    def __getattr__(self, name):
        if name in self:
            return name
        raise AttributeError

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