On Thu, Apr 25, 2013 at 5:29 AM, Antoine Pitrou <solip...@pitrou.net> wrote:

> Le Thu, 25 Apr 2013 05:21:50 -0700,
> Eli Bendersky <eli...@gmail.com> a écrit :
> >
> >
> > > or:
> > >
> > >     >>> Colors(1)
> > >     <EnumValue: Colors.red [value=1]>
> > >
> > >
> > This syntax was considered initially but then rejected because it's
> > confusing, and there already exists a way to lookup by value
> > (Colors[1]).
>
> Well, it works in latest flufl.enum. Is there a difference between the
> PEP and the implementation.
>

It produces a deprecation warning in flufl.enum because flufl.enum
specifically supported this earlier. It should not be supported in the
stdlib implementation.

The __call__ syntax has been repurposed for the convenience API:

>>> Animals = Enum('Animals', 'ant bee cat dog')
>>> Animals
<Animals {ant: 1, bee: 2, cat: 3, dog: 4}>
>>> Animals.ant
<EnumValue: Animals.ant [value=1]>
>>> Animals.ant.value
1

The aforementioned deprecated syntax refers to __call__ with a single
arguments (the convenience API by definition requires more than one).

Eli
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to