Python's enum equivalent [duplicate]
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 pro开发者_Go百科perty 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
精彩评论