[Python-ideas] constant/enum type in stdlib

Michael Foord fuzzyman at gmail.com
Wed Jan 30 16:22:06 CET 2013


On 30 January 2013 07:26, Antoine Pitrou <solipsis at pitrou.net> wrote:

> On Wed, 30 Jan 2013 17:58:37 +1300
> Greg Ewing <greg.ewing at 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

The lookup would create the member - with the appropriate value.

Michael





> >
> > However, it's still slightly annoying that you have to
> > specify how many values there are in the range() call.
> > It would be even nicer it we could just use an infinite
> > iterator, such as
> >
> >     class Color(Enum):
> >        RED, WHITE, BLUE = values()
>
> Well, how about:
>
> class Color(Enum):
>     values = ('RED', 'WHITE', 'BLUE')
>
> ?
>
> (replace values with __values__ if you prefer)
>
> Regards
>
> Antoine.
>
>
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20130130/1b40d3b8/attachment.html>


More information about the Python-ideas mailing list