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