Mel Wilson wrote:
In article <[EMAIL PROTECTED]>,
Steven Bethard <[EMAIL PROTECTED]> wrote:

I believe what Peter Otten was pointing out is that calling __eq__ is
not the same as using ==, presumably because the code for == checks the
types of the two objects and returns False if they're different before
the __eq__ code ever gets called.


Doesn't seem to:
[snip]

Hmm... maybe it only shows up with subclassing?

>>> class C(object):
...     def __eq__(self, other):
...         return True
...
>>> class D(C):
...     def __eq__(self, other):
...         return False
...
>>> c, d = C(), D()
>>> c == 3
True
>>> 3 == c
True
>>> c == d
False
>>> d == c
False
>>> c.__eq__(d)
True
>>> d.__eq__(c)
False


STeve -- http://mail.python.org/mailman/listinfo/python-list

Reply via email to