On 04/29/2013 06:23 PM, Marco Hemmelrath wrote:
First of all, hi, I'm new to this list.
Following the enum discussions on this list I am kind of confused about how
enums and their respective instances, i.e.
the values, should behave in "normal" context.
I apologize beforehand for the mass of "questions" because the following
contains really many discussed things but they
all kinda depend on one another, and for terminology which I might've missed.
Considering we have[1]:
class Color(enum):
red = 1
white = 2
other = "undefined"
class State(enum):
idle = 0
busy = 1
idling = idle
ideling = 0
together with the premises:
1. type(State.busy) == State
2. type(State) == enum
3. isinstance(State.idle, State)
4. State.idle is State.idle
which should mostly be agreed on (if I didn't misinterpret).
How would an enum instance (e.g. State.busy) behave in normal Python
expressions? Should these instances just wrap their
values and provide some simple overhead useful for enums?
I'll just note down a few examples of how I think it could work and express a
few thoughts on them:
1. State.busy == 1
2. State.busy == Color.red
3. int(State.Busy) is 1
4. isinstance(State.busy, int)
5. Color.other.startswith("und")
6. State.busy is not 1
7. State.busy is not Color.red
8. State.idle in State
9. 0 in State # True, False or raise?
10. State.idling is State.idle
11. State.idle == State.idling
12. State.idle is not State.idling
1 & 2 are False (would be true if using `.value`)
3 is True
4 & 5 are False (again, need `.value`)
6 is not the correct way to use `is` (should be `==`)
7, 8, 9, 10, 11 are True
12 is False
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com