Newbie Question - Overloading ==
Duncan Booth
duncan.booth at invalid.invalid
Tue Apr 1 03:22:41 EDT 2008
"bruno.desthuilliers at gmail.com" <bruno.desthuilliers at gmail.com> wrote:
>> 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.
>
I fully agree with that, but an apple != a pear, even if they are the same
size and colour. There will be some types where you can have equality
between objects of different types (e.g. int/float), but more often the
fact that they are different types wil automatically mean they are not
equal.
More information about the Python-list
mailing list