[Python-Dev] enum discussion: can someone please summarize open issues?

Larry Hastings larry at hastings.org
Mon Apr 29 19:58:45 CEST 2013


On 04/29/2013 10:35 AM, Steven D'Aprano wrote:
> On 30/04/13 02:42, Guido van Rossum wrote:
>> On Mon, Apr 29, 2013 at 6:51 AM, Eli Bendersky <eliben at gmail.com> wrote:
>>> I don't feel strongly about allowing ()-lookup in addition to 
>>> []-lookup, but
>>> in this paragraph the issue of multiple definitions has sneaked in :-)
>>> flufl.enum disallows this:
>>>
>>> class Color(Enum):
>>>    red = 1
>>>    blue = 2
>>>    green = 1 # oops!
>>>
>>> Has it been decided that this is now allowed?
>>
>> I don't recall if it was decided. I think it should be possible to
>> create aliases like this. The main thing I care about is that
>> Color.green == Color.red.
>
> I believe that Barry had decided that it should be prohibited. I 
> objected, and Nick pointed out that although declaring two enums with 
> the same value inside the class is prohibited, aliases are supported 
> by adding them from the outside:
>
> class Color(Enum):
>     red = 1
>     blue = 2
>
> Color.green = Color.red
>
> which satisfies me.

Assuming that Color(1) always returns the same object, then we could 
also write this:

    class Color(Enum):
         red = 1
         blue = 2
    Color.green = Color(1)


Which should be identical to

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

To declare that my first example is okay but the second is not strikes 
me as awfully special.  And I do mean awful.


//arry/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20130429/19310a1f/attachment.html>


More information about the Python-Dev mailing list