开发者

Python's enum equivalent [duplicate]

This question already has answers here: Closed 12 years ago.

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜