Am 2014-07-08 01:49, schrieb Benjamin Peterson: > On Mon, Jul 7, 2014, at 16:36, Andreas Maier wrote: >> Am 2014-07-07 19:43, schrieb Ethan Furman: >>> On 07/07/2014 09:56 AM, Andreas Maier wrote: >>>> 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? >>> One could say that the value of an object is the object itself. Since >>> different objects are different, then they are not equal. >>> >>>>> 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. >>> Python cannot know which values are important in an equality test, and >>> which are not. So it refuses to guess. >>> >> Well, one could argue that using the address of an object for its value >> equality test is pretty close to guessing, considering that given a >> sensible definition of value equality, objects of different identity can >> very well be equal but will always be considered unequal based on the >> address. > Probably the best argument for the behavior is that "x is y" should > imply "x == y", which preludes raising an exception. No such invariant > is desired for ordering, so default implementations of < and > are not > provided in Python 3. I agree that "x is y" should imply "x == y". The problem of the default implementation is that "x is not y" implies "x != y" and that may or may not be true under a sensible definition of equality.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4