On 30 January 2013 16:26, Antoine Pitrou <solipsis@pitrou.net> wrote:
Le Wed, 30 Jan 2013 15:22:06 +0000,
Michael Foord <fuzzyman@gmail.com> a
écrit :
> On 30 January 2013 07:26, Antoine Pitrou
> <solipsis@pitrou.net> wrote:
>
> > On Wed, 30 Jan 2013 17:58:37 +1300
> > Greg Ewing <greg.ewing@canterbury.ac.nz>
> > wrote:
> > > Guido van Rossum wrote:
> > >
> > > > class color(enum):
> > > >   RED = value()
> > > >   WHITE = value()
> > > >   BLUE = value()
> > >
> > > We could do somewhat better than that:
> > >
> > >     class Color(Enum):
> > >        RED, WHITE, BLUE = range(3)
> >
>
>
>
> With a Python 3 metaclass that provides default values for *looked up*
> entries you could have this:
>
> class Color(Enum):
>     RED, WHITE, BLUE

This relies on tuple evaluation order,


It does if you do them as a tuple.
 
and would also evaluate any
other symbol looked up from inside the class body

Only if they aren't actually defined.
 
(which means I
cannot add anything else than enum symbols to the class).


So not true - it is only *undefined* symbols that are added as enum values.
 
In other words, I'm afraid it would be somewhat fragile ;)

Well, within specific parameters...

Michael
 

Regards

Antoine.


_______________________________________________
Python-ideas mailing list
Python-ideas@python.org
http://mail.python.org/mailman/listinfo/python-ideas



--
http://www.voidspace.org.uk/

May you do good and not evil
May you find forgiveness for yourself and forgive others
May you share freely, never taking more than you give.
-- the sqlite blessing http://www.sqlite.org/different.html