Re: Newbie Question - Overloading ==
- From: "bruno.desthuilliers@xxxxxxxxx" <bruno.desthuilliers@xxxxxxxxx>
- Date: Mon, 31 Mar 2008 12:30:38 -0700 (PDT)
On 31 mar, 20:09, Duncan Booth <duncan.bo...@xxxxxxxxxxxxxxx> wrote:
xkenneth <xkenn...@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'?
And why not ?-)
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.
I don't think there's a clear rule here. Python is dynamically typed
for good reasons, and MHO is that you should not fight against this
unless you have equally good reasons to do so.
.
- References:
- Newbie Question - Overloading ==
- From: xkenneth
- Re: Newbie Question - Overloading ==
- From: Duncan Booth
- Newbie Question - Overloading ==
- Prev by Date: Re: Beginner advice
- Next by Date: Re: License of Python
- Previous by thread: Re: Newbie Question - Overloading ==
- Next by thread: Re: Newbie Question - Overloading ==
- Index(es):