David Rock wrote:
>
>> On Jan 17, 2019, at 12:39, Peter Otten <[email protected]> wrote:
>>
>> One obscure detail of the implementation of list equality:
>>
>> In Python an object can be unequal to itself:
>>
>>>>> class A:
>> ... def __eq__(self, other): return False
>> ...
>>>>> a = A()
>>>>> a == a
>> False
>
> Isn’t this a bit artificial, though? The reason this is False is because
> you explicitly tell it to return False when using equality. That’s not
> the same thing as using __eq__ without overriding it’s behavior
> internally.
Sorry, I don't understand that argument. My point wasn't whether it's a good
idea to write objects that compare unequal to themselves -- such objects
already exist:
>>> nan = float("nan")
>>> nan == nan
False
I only warned that a list containing such an object does not meet the
intuitive expectation that list_a == list_b implies that all items in list_a
compare equal to the respective items in list_b.
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor