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

Ethan Furman ethan at stoneleaf.us
Fri Apr 12 21:58:22 CEST 2013


On 04/12/2013 12:37 PM, � wrote:
> On Fri, Apr 12, 2013 at 7:21 PM, Russell E. Owen <rowen at 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~


More information about the Python-Dev mailing list