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

Eli Bendersky eliben at gmail.com
Fri Apr 26 20:17:57 CEST 2013

On Fri, Apr 26, 2013 at 10:36 AM, Guido van Rossum <guido at python.org> wrote:

> On Fri, Apr 26, 2013 at 10:33 AM, Glenn Linderman <v+python at g.nevcal.com>
> wrote:
> > On 4/25/2013 9:19 PM, Guido van Rossum wrote:
> >
> > On Thu, Apr 25, 2013 at 8:39 PM, Glenn Linderman <v+python at g.nevcal.com>
> > wrote:
> >
> > an enumeration of objects whose class defines __call__ would
> > not be so weird.
> >
> > Seriously? You'd complexificate the basic usage in order to cater for
> > such an esoteric use case? The *only* use cases that matter at all for
> > enum values are ints and strings, and even the latter could be
> > considered a luxury when compared to other languages' enums.
> >
> >
> > No, I'd look for a solution/implementation that doesn't divide objects
> into
> > "plain" and "esoteric" cases. Py3 now treats everything as objects. So an
> > enumeration should be able to deal with any object as a value.
> I think you've lost track of the Zen of Python.

I feel that this thread has lost track of it long ago. Some time back in
the Enum discussions (some 350 messages ago or so), there was a proposal to
have this:

class Color(Enum):

By doing some crazy-cool shenanigans. Although the syntax is great, it was
rejected on the basis of being too magic.

The recent proposals of folding Enum and EnumValue into one, having class
members be instances of the class they're members of while supporting a
bunch of other Enum requirements also go off the rails in terms of
complexity and magic.

In contrast, personally I feel the current proposal in PEP 435 has an
appeal from the POV of simplicity. It really is a very nice separation of
concerns between enum values and Enum as a container of such values. It
even allows significant customization (IntEnum, etc) which is pretty simple
to grok. It would be a shame to lose these for the sake of making Python a
bit more like Java.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20130426/864322c1/attachment.html>

More information about the Python-Dev mailing list