[Python-Dev] constant/enum type in stdlib

Michael Foord fuzzyman at voidspace.org.uk
Tue Nov 23 15:56:36 CET 2010


On 23/11/2010 14:42, Antoine Pitrou wrote:
> On 2010年11月23日 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.
>
enum isn't only in C. (They are in C# as well at least.) Wikipedia links 
enum to "enumerated type" and says:
 an enumerated type (also called enumeration or enum) is a data type 
consisting of a set of named values
It sounds entirely appropriate. I have no problem with explicitly 
assigning values instead of doing it automagically.
All the best,
Michael
> Antoine.
>>> _______________________________________________
> Python-Dev mailing list
> Python-Dev at python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: http://mail.python.org/mailman/options/python-dev/fuzzyman%40voidspace.org.uk

-- 
http://www.voidspace.org.uk/


More information about the Python-Dev mailing list

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