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.