[Python-Dev] enum discussion: can someone please summarize open issues? (original) (raw)

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