[Python-ideas] constant/enum type in stdlib (original) (raw)

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