25

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).

2

2 Answers 2

16
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.

Sign up to request clarification or add additional context in comments.

Comments

8

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

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.