[Python-Dev] constant/enum type in stdlib

Antoine Pitrou solipsis at pitrou.net
Tue Nov 23 16:01:59 CET 2010


Le mardi 23 novembre 2010 à 14:56 +0000, Michael Foord a écrit :
> On 23/11/2010 14:42, Antoine Pitrou wrote:
> > 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.
> >
> 
> enum isn't only in C. (They are in C# as well at least.)

Well, it's been inherited by C-like languages, no doubt. Like braces and
semicolumns :)

Regards

Antoine.




More information about the Python-Dev mailing list