A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2013-April/125628.html below:

[Python-Dev] PEP 435 -- Adding an Enum type to the Python standard library

[Python-Dev] PEP 435 -- Adding an Enum type to the Python standard libraryEthan Furman ethan at stoneleaf.us
Sat Apr 27 04:51:45 CEST 2013
On 04/26/2013 07:29 PM, Glenn Linderman wrote:
> On 4/26/2013 6:22 PM, Greg Ewing wrote:
>> Guido van Rossum wrote:
>>> If we had access to the syntax used for the definition, this would be
>>> simple: assignments define items, def statements define methods. But
>>> at run time we only see the final object resulting from the
>>> definition,
>>
>> Another way we could tell the difference is if the def
>> statement used a different protocol for making bindings
>> than assignment.
>>
>> Suppose a def statement used in a class body called
>> __defitem__, if it exists, instead of __setitem__. Then
>> the metaclass would be able to do different things for
>> defs and assignments.
>
> Well, some assignments could be for non-enumeration items, once you start allowing EnumItem in the list.  Some method
> of grouping enumeration items, or grouping non-enumeration items would solve the problem.
>
> class Color( Enum ):
>      Enum.__enumerationItems__(
>             red=1,
>             green=2,
>             blue=3,
>             )
>      # other methods and assignments

Or, if we go with the metaclass magic of re-using the class/type name (and who doesn't love metaclass magic??):

class Color(Enum):
     red = Color(1)
     green = Color(2)
     blue = Color 3)
     look_ma_not_an_enum = 4

--
~Ethan~
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4