Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #45214

Re: Differences of "!=" operator behavior in python3 and python2 [ bug? ]

From Rotwang <sg552@hotmail.co.uk>
Newsgroups comp.lang.python
Subject Re: Differences of "!=" operator behavior in python3 and python2 [ bug? ]
Date 2013-05-13 00:52 +0100
Organization A noiseless patient Spider
Message-ID <kmp9oi$6g1$1@dont-email.me> (permalink)
References <CAJxoosfPri76e+Zp802a3Ve5d9aY5Mrav0VLwU64bxJt1bZDag@mail.gmail.com> <mailman.1606.1368402067.3114.python-list@python.org>

Show all headers | View raw


On 13/05/2013 00:40, Ian Kelly wrote:
> On Sun, May 12, 2013 at 5:23 PM, Mr. Joe <titanix88@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

Back to comp.lang.python | Previous | NextPrevious in thread | Find similar | Unroll thread


Thread

Re: Differences of "!=" operator behavior in python3 and python2 [ bug? ] Ian Kelly <ian.g.kelly@gmail.com> - 2013-05-12 17:40 -0600
  Re: Differences of "!=" operator behavior in python3 and python2 [ bug? ] Rotwang <sg552@hotmail.co.uk> - 2013-05-13 00:52 +0100

csiph-web