__eq__ and __ne__

Behrang Dadsetan ben at dadsetan.com
Wed Jul 9 02:40:31 EDT 2003


Shane Hathaway wrote:
> Jeremy Hylton wrote:
<snip>
> Actually, C++ generates a compiler error if you try to do that.  (See 
> the attached program.)  Java doesn't run into this because it has a 
> simpler interface: the only operator you can override is equals().  So 
> in this case, C++ is fully explicit and Java is fully implicit, while 
> Python makes a guess.  If we can't make it implicit like Java, then it 
> seems preferable for Python to raise an exception, similar to C++, when 
> you use the != operator with an instance that implements __eq__ but not 
> __ne__.
> 
> Shane
> 
<snip>


+1
would be probably very helpful

The only problem I see is that it would break "perlish" code (code you 
would not understand the behaviour of 3 weeks later). Of course some 
code might never use the __ne__ of its "__eq__ overloaded class" and 
therefore lived happily so far, but it is dangerous code anyway.

Regards, Ben.





More information about the Python-list mailing list