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

Ethan Furman ethan at stoneleaf.us
Fri Apr 12 23:19:53 CEST 2013


On 04/12/2013 02:06 PM, Eli Bendersky wrote:
> On Fri, Apr 12, 2013 at 1:52 PM, R. David Murray wrote:
>     >>> import enum
>     >>> class Foo(enum.Enum):
>     ...    aa = 1
>     ...    bb = 2
>     ...    cc = 'hi'
>     >>> Foo
>     Traceback (most recent call last):
>        File "<stdin>", line 1, in <module>
>        File "./enum.py", line 103, in __repr__
>          for k in sorted(cls._enums)))
>     TypeError: unorderable types: str() < int()
>
>
> I actually think that having values with different types within a single Enum is conceptually wrong and should be
> disallowed at creation time. With enums, you either care or don't care about their actual value. If you don't care (the
> most common use case of an enum, IMHO), then no problem here. If you do care, then it's probably for very specific
> reasons most of which are solved by IntEnum. I can't imagine why someone would need differently typed values in a single
> enum - this just seems like a completely inappropriate use of an enum to me.

+1  (on disallowing the mixed type enum, not the valueless enum being more common  ;)


More information about the Python-Dev mailing list