[Python-Dev] backported Enum
Barry Warsaw
barry at python.org
Fri Jun 28 22:20:27 CEST 2013
On Jun 28, 2013, at 01:07 PM, Jim J. Jewett wrote:
>> Switching from getitem syntax to call syntax for looking up an
>> enum member by value, e.g.
>
>> - return self._enum[value]
>> + return self._enum(value)
>
>> Interesting that these two were exactly opposite from flufl.enum.
>
>Is there a reason why these were reversed?
The individual decisions made (begrudging) sense at the time, although I don't
think it was noticed that the combined effect was to switch the meanings.
Call syntax makes sense for converting a value to an enum because that mirrors
calling built-in types, e.g. int('7'). Getitem syntax makes sense for
lookup-by-name.
>> Switching from int() to .value to get the integer value of an
>> enum member, e.g.
>
>> - return (member.list_id, member.address.email, int(member.role))
>> + return (member.list_id, member.address.email, member.role.value)
>
>Is just this a style preference?
No. I'm not using IntEnums and regular enums don't have an __int__, which
makes sense because their values can be anything. .value is the way to get at
the value. (Note that even though I don't use IntEnums, my values are all
integers. It's just not worth it to change all my imports.)
-Barry
More information about the Python-Dev
mailing list