Re: [Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library

On Fri, Apr 12, 2013 at 7:21 PM, Russell E. Owen <rowen@uw.edu> wrote:
Using intEnum is certainly doable, but that opens up the door to comparing values from different Enums, which is not something I'd want to allow.
I agree. Comparing values from different Enums could cause a lot of hard to find bugs. On the other hand, simply checking in `__cmp__` what Enum both values belong to (since they do have a `enum` attribute) should allow us to avoid cross-comparing instead of just raising a TypeError. It's not very intuitive behavior IMHO. Just my 2 cents. -- Fábio Santos

On 04/12/2013 12:37 PM, � wrote:
On Fri, Apr 12, 2013 at 7:21 PM, Russell E. Owen <rowen@uw.edu> wrote:
Using intEnum is certainly doable, but that opens up the door to comparing values from different Enums, which is not something I'd want to allow.
I agree. Comparing values from different Enums could cause a lot of hard to find bugs.
On the other hand, simply checking in `__cmp__` what Enum both values belong to (since they do have a `enum` attribute) should allow us to avoid cross-comparing instead of just raising a TypeError. It's not very intuitive behavior IMHO.
Something like this is what happens for Enums, but IntEnums are subtypes of int, and if we had something like: class Fruit(IntEnum): apples = 1 bananas = 2 oranges = 3 class Flowers(IntEnum): roses = 1 lillies = 2 violets = 3 --> Fruit.apples == 1 True --> Flowers.roses == 1 True --> Fruit.apples == 1 == Flowers.roses ??? This way lies madness. -- ~Ethan~
participants (2)
-
Ethan Furman
-
Fábio Santos