Python's enum equivalent

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

What is the Python idiom for a list of differently indexed names (like Enum in C/C++ or Java)?

Clarification: I want a property of a value to be set to a restricted range, such as card suites Heart, Club, Spade, Diamond . I could represent it with an int in range 0..3, but it would allow out of range input (like 15).


class Suite(object): pass

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

etc.

A class in python is an object. So you can write

x=Heart

etc.


here is very same popular question on stackoverflow

Edit :

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

s1 = Suite(['Heart', 'Club', 'Spade', 'Diamond'])
s1.Heart
链接地址: http://www.djcxy.com/p/91734.html

上一篇: 用于枚举的pythonic替换

下一篇: Python的enum等价物