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

R. David Murray rdmurray at bitdance.com
Fri Apr 12 16:23:47 CEST 2013


On Fri, 12 Apr 2013 10:19:29 -0400, Davis Silverman <sinistersnare at gmail.com> wrote:
> I think the reason they are not supporting __lt__, __gt__,etc. is because
> ints are optional values for enums, therefore it wouldnt be a good idea to
> compare enums of different types in that way.
> 
> example:
> 
> >>>class MyEnum(Enum):
> >>>   fir = 1
> >>>   sec = 2
> >>>   thir = "THIRD!"
> 
> and doing
> 
> >>> MyEnum.fir >= MyEnum.thir
> would give unexpected results, therefore not making it a great idea

That's why I included the bit about iterating the values.  The ordering
*is* defined.  I find it much more surprising for that ordering to
be inaccessible via the comparison operators.

I think either the iteration order should be undefined (like a set
or dict), or the comparison operations should work.  I'd prefer
the latter, because of the use case I outlined.

--David


More information about the Python-Dev mailing list