[Python-Dev] == on object tests identity in 3.x
Andreas Maier
andreas.r.maier at gmx.de
Mon Jul 7 18:56:10 CEST 2014
Am 07.07.2014 17:55, schrieb Ethan Furman:
> On 07/07/2014 04:22 AM, Andreas Maier wrote:
>>
>> Where is the discrepancy between the documentation of == and its
>> default implementation on object documented?
>
> There's seems to be no discrepancy (at least, you have not shown it),
The documentation states consistently that == tests the equality of the
value of an object. The default implementation of == in both 2.x and 3.x
tests the object identity. Is that not a discrepancy?
> but to answer the question about why the default equals operation is an
> identity test:
>
> - all objects should be equal to themselves (there is only one that
> isn't, and it's weird)
I agree. But that is not a reason to conclude that different objects (as
per their identity) should be unequal. Which is what the default
implementation does.
> - equality tests should not, as a general rule, raise exceptions --
> they should return True or False
Why not? Ordering tests also raise exceptions if ordering is not
implemented.
Andy
More information about the Python-Dev
mailing list