On 13/05/2013 00:40, Ian Kelly wrote:
On Sun, May 12, 2013 at 5:23 PM, Mr. Joe <titani...@gmail.com> wrote:
I seem to stumble upon a situation where "!=" operator misbehaves in
python2.x. Not sure if it's my misunderstanding or a bug in python
implementation. Here's a demo code to reproduce the behavior -

The != operator is implemented by the __ne__ special method.  In
Python 3, the default implementation of __ne__ is to call __eq__ and
return the opposite of whatever it returns.

One should be aware, however, that this doesn't necessarily apply to classes inheriting from builtins other than object (a fact that recently bit me on the a***):

>>> class spam:
        def __eq__(self, other):
                print('spam')
                return super().__eq__(other)

        
>>> class eggs(list):
        def __eq__(self, other):
                print('eggs')
                return super().__eq__(other)

        
>>> spam() != spam()
spam
spam
True
>>> eggs() != eggs()
False
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to