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

Steven D'Aprano steve at pearwood.info
Sat Apr 13 04:07:27 CEST 2013


On 13/04/13 05:33, Barry Warsaw wrote:
> On Apr 12, 2013, at 11:21 AM, Russell E. Owen wrote:
>
>> I, too, would strongly prefer to see ordering within an enum. I use
>> home-made enums heavily in my code and find ordering comparisons useful
>> there.
>
> This was all hashed out in gory detail on python-ideas.  I feel strongly that
> base EnumValues should be unordered, especially because the underlying values
> can be of any type.  What would you expect to happen in this case:
>
>      class X(Enum):
>          a = 1
>          b = 'hi'
>
>      if X.a < myvalue < X.b:
>          # whaa?


I would expect the same behaviour from enums that I get in Python 3 from non-enums. That is, if enums X.a and X.b happen to both be ints, or both strings, then comparisons should succeed, but if they are different types, I should get a TypeError.

The above applies to related enums. If they are unrelated (e.g. Colours.red < Insects.ant) then I think TypeError is appropriate.



-- 
Steven


More information about the Python-Dev mailing list