[Python-Dev] == on object tests identity in 3.x (original) (raw)
Benjamin Peterson benjamin at python.org
Mon Jul 7 17:15:47 CEST 2014
- Previous message: [Python-Dev] == on object tests identity in 3.x
- Next message: [Python-Dev] == on object tests identity in 3.x
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Mon, Jul 7, 2014, at 04:22, Andreas Maier wrote:
While discussing Python issue #12067 (http://bugs.python.org/issue12067#msg222442), I learned that Python 3.4 implements '==' and '!=' on the object type such that if no special equality test operations are implemented in derived classes, there is a default implementation that tests for identity (as opposed to equality of the values).
The relevant code is in function dorichcompare() in Objects/object.c. IMHO, that default implementation contradicts the definition that '==' and '!=' test for equality of the values of an object. Python 2.x does not seem to have such a default implementation; == and != raise an exception if attempted on objects that don't implement equality in derived classes.
Why do you think that?
% python Python 2.7.6 (default, May 29 2014, 22:22:15) [GCC 4.7.3] on linux2 Type "help", "copyright", "credits" or "license" for more information.
class x(object): pass ... class y(object): pass ... x != y True x == y False
- Previous message: [Python-Dev] == on object tests identity in 3.x
- Next message: [Python-Dev] == on object tests identity in 3.x
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]