Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python > #45214
| 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> |
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 | Next — Previous in thread | Find similar | Unroll 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