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

Philip Jenvey pjenvey at underboss.org
Sun Apr 28 01:07:45 CEST 2013


On Apr 27, 2013, at 2:57 PM, Guido van Rossum wrote:

> On Sat, Apr 27, 2013 at 1:01 PM, Ethan Furman <ethan at stoneleaf.us> wrote:
>> It seems to me that the *most* common case will be a simple name mapping, in
>> which case one can do:
>> 
>> Planet = Enum._make('Planet', 'MERCURY VENUS EARTH')
>> 
>> and be done with it.
> 
> That looks horrible.

Call me crazy, but might I suggest:

class Planet(Enum, values='MERCURY VENUS EARTH'):
    """Planets of the Solar System"""

I've always wanted something similar for namedtuples, such as:

class Point(NamedTuple, field_names='x y z'):
    """Planet location with Sun as etc"""

Especially when the common idiom for specifying namedtuples w/ docstrings looks similar but leaves a lot to be desired w/ the required duplication of the name:

class Point(namedtuple('Point', 'x y z')):
    """Planet location with Sun as etc"""

(Raymond's even endorsed the former):

http://bugs.python.org/msg111722

--
Philip Jenvey


More information about the Python-Dev mailing list