[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