[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