On Thu, Apr 25, 2013 at 11:50 AM, Barry Warsaw <barry at 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)