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

Larry Hastings larry at hastings.org
Thu May 2 17:42:14 CEST 2013


On 05/02/2013 07:57 AM, Barry Warsaw wrote:
> On May 01, 2013, at 11:54 AM, Larry Hastings wrote:
>
>> On 04/30/2013 11:29 PM, Ethan Furman wrote:
>>> On 04/30/2013 11:18 PM, Barry Warsaw wrote:
>>>> On Apr 28, 2013, at 11:50 PM, Ethan Furman wrote:
>>>>
>>>>> But as soon as:
>>>>>
>>>>>     type(Color.red) is Color          # True
>>>>>     type(MoreColor.red) is MoreColor  # True
>>>>>
>>>>> then:
>>>>>
>>>>>      Color.red is MoreColor.red  # must be False, no?
>>>>>
>>>>>
>>>>> If that last statement can still be True, I'd love it if someone >>> showed me
>>>>> how.
>>>> class Foo:
>>>>       a = object()
>>>>       b = object()
>>>>
>>>> class Bar(Foo):
>>>>       c = object()
>>>>
>>>>>>> Foo.a is Bar.a
>>>> True
>>> Wow.  I think I'm blushing from embarrassment.
>>>
>>> Thank you for answering my question, Barry.
>> Wait, what?  I don't see how Barry's code answers your question.  In his
>> example, type(a) == type(b) == type(c) == object.  You were asking "how can
>> Color.red and MoreColor.red be the same object if they are of different
>> types?"
>>
>> p.s. They can't.
> Sure, why not?  In "normal" Python, Bar inherits a from Foo, it doesn't define
> it so it's exactly the same object.  Thus if you access that object through
> the superclass, you get the same object as when you access it through the
> subclass.
>
> So Foo.a plays the role of Color.red and Bar.a plays the role of
> MoreColor.red.  Same object, thus `Foo.a is Bar.a` is equivalent to `Color.red
> is MoreColor.red`.

So you're saying Color.red and MoreColor.red are the same object. Which 
means they have the same type.  But in Ethan's original example above, 
type(Color.red) == Color, and type(MoreColor.red) == MoreColor.  Those 
are different types.

So, for the second time: How can Color.red and MoreColor.red be the same 
object when they are of different types?

p.s. They can't.


//arry/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20130502/09116c67/attachment.html>


More information about the Python-Dev mailing list