A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2018-June/153959.html below:

[Python-Dev] About [].append == [].append

[Python-Dev] About [].append == [].append [Python-Dev] About [].append == [].appendJeroen Demeyer J.Demeyer at UGent.be
Thu Jun 21 07:25:19 EDT 2018
Currently, we have:

 >>> [].append == [].append
False

However, with a Python class:

 >>> class List(list):
...     def append(self, x): super().append(x)
 >>> List().append == List().append
True

In the former case, __self__ is compared using "is" and in the latter 
case, it is compared using "==".

I think that comparing using "==" is the right thing to do because "is" 
is really an implementation detail. Consider

 >>> (10000).bit_length == (10000).bit_length
True
 >>> (10000).bit_length == (10000+0).bit_length
False

I guess that's also the reason why CPython internally rarely uses "is" 
for comparisons.

See also:
- https://bugs.python.org/issue1617161
- https://bugs.python.org/issue33925

Any opinions?


Jeroen.
More information about the Python-Dev mailing list

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4