Re: Newbie Question - Overloading ==



xkenneth <xkenneth@xxxxxxxxx> wrote:

Now obviously, if I test an instance of either class equal to each
other, an attribute error will be thrown, how do I handle this? I
could rewrite every __eq__ function and catch attribute errors, but
that's tedious, and seemingly unpythonic. Also, I don't want an
attribute error thrown whenever two classes are compared that don't
have the same attributes.

I have a sneaky feeling I'm doing something completely unpythonic
here.

Surely an A isn't equal to every other object which just happens to have
the same attributes 'a' and 'b'? I would have thoughts the tests want to be
something like:

class A:
def __eq__(self,other):
return (isinstance(other, A) and
self.a == other.a and self.b == other.b)

(and similar for B) with either an isinstance or exact match required for
the type.
.