[Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library (original) (raw)

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