[Python-Dev] Enumeration items: mixed types?

Ethan Furman ethan at stoneleaf.us
Tue Apr 30 17:58:02 CEST 2013

On 04/29/2013 05:38 PM, Greg Ewing wrote:
> Ethan Furman wrote:
>> I suppose the other option is to have `.value` be whatever was assigned (1, 'really big country', and (8273.199, 517) ),
> I thought that was the intention all along, and that we'd
> given up on the idea of auto-assigning integer values
> (because it would require either new syntax or extremely
> dark magic).

Not that dark, actually -- just a little dim.  ;)

I just had it stuck in my head that every enum item would have an integer associated with it, and possibly have another 
value as well.

So, for example:

--> class Constants(float, Enum):
...     e = 2.81843  # am I close?
...     pi = 3.141596
...     tau = 2 * pi

I cannot do

--> Constants(2)

and get pi.  I have to do

--> Constants(3.141596)

and given the nature of floating point I can see that failing at some, er, point.

Likewise, if I have normal, but jumbled, Enum:

--> class Jumble(Enum):
...     eggs = 1
...     method = 'scramble'
...     cost = 2.5

then to get method back I have to use

--> Jumble('scramble')

It just seems odd to me.  Oh, and it would seem just as odd using __getitem__.  ;)


More information about the Python-Dev mailing list