[Python-Dev] constant/enum type in stdlib

Benjamin Peterson benjamin at python.org
Tue Nov 23 15:52:09 CET 2010


2010/11/23 Antoine Pitrou <solipsis at pitrou.net>:
> On Tue, 23 Nov 2010 14:24:18 +0000
> Michael Foord <fuzzyman at voidspace.org.uk> wrote:
>> Well, for backwards compatibility reasons the new constants would have
>> to *behave* like the old ones (including having the same underlying
>> value and comparing equal to it).
>>
>> In many cases it is *likely* that subclassing int is a better way of
>> achieving that. Actually looking through the standard library to
>> evaluate it is the only way of confirming that.
>>
>> Another API, that reduces the duplication of creating the enum and
>> setting the names, could be something like:
>>
>>      make_enums("Names", "NAME_ONE NAME_TWO NAME_THREE", base_type=int,
>> module=__name__)
>>
>> Using __name__ we can set the module globals in the call to make_enums.
>
> I don't understand why people insist on calling that an "enum". enum is
> a C legacy and it doesn't bring anything useful as I can tell. Instead,
> just assign the values explicitly.

The concept of a "enumeration" of values is still useful outside its
stunted C incarnation.

Out of curiosity, why is enum "legacy" in C?



-- 
Regards,
Benjamin


More information about the Python-Dev mailing list