[Python-ideas] Enums

Ezio Melotti ezio.melotti at gmail.com
Thu Jul 28 14:17:52 CEST 2011


Hi,
On 28/07/2011 4.12, Nick Coghlan wrote:
> On Thu, Jul 28, 2011 at 10:56 AM, Barry Warsaw<barry at python.org> wrote:
>> Again, looking at how I've used them extensively over the last several years,
>> I would much rather write
>>>> class Colors(Enum):
>> red = 1
>> green = 2
>> blue = 3
>>>> than
>>>> red = NamedValue('red', 1)
>> green = NamedValue('green', 2)
>> blue = NamedValue('blue', 3)
>>>> To me, the duplication is jarring and error prone.
> Yeah, I'd actually be inclined to define such values programmatically
> rather than writing them out manually like that:
>> _named_colours = dict(
> red=0xFF0000,
> green=0x00FF00,
> blue=0x0000FF,
> )
> globals().update((k, namedvalue(k, v)) for k, v in _named_colours)

A method like Colors.make_global([namespace]) could be added to do the 
same thing.
>> (where namedvalue is the value based factory function I mentioned in
> the recipe post)
>> However, my contention is that the fundamentally interesting operation
> is associating names with values (as your EnumValue class does). Enums
> and their ilk are then just syntactic sugar for defining groups of
> such values without needing to repeat yourself.
>> Cheers,
> Nick.
>
Best Regards,
Ezio Melotti


More information about the Python-ideas mailing list

AltStyle によって変換されたページ (->オリジナル) /