On Thu, Apr 25, 2013 at 11:50 AM, Barry Warsaw <ba...@python.org> wrote:
> On Apr 23, 2013, at 10:24 AM, R. David Murray wrote:
>
>>> >>> isinstance(C.a, C)
>>> False
>>> >>> isinstance(C(1), C)
>>> False
>>>
>>> It would really be better if instances were actual instances of the
>>> class, IMO.
>>
>>The first False looks correct to me, I would not expect an enum value to be
>>an instance of the class that holds it as an attribute.
>
> Agreed, completely.
>
>>The second certainly looks odd, but what does it even mean to have an
>>instance of an Enum class?
>
> It only looks odd because it's using failed, duplicate, deprecated syntax.
> Does this look similarly odd?
>
>>>> isinstance(C[1], C)
> False
>
> given that ``C[1] is C.a``?

I don't know what's going on, but it feels like we had this same
discussion a week ago, and I still disagree. Disregarding, the C[i]
notation, I feel quite strongly that in the following example:

class Color(Enum):
    red = 1
    white = 2
    blue = 3
    orange = 4

the values Color.red etc. should be instances of Color. This is how
things work in all other languages that I am aware of that let you
define enums.

--
--Guido van Rossum (python.org/~guido)
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to