[Python-Dev] About [].append == [].append (original) (raw)

Jeroen 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:

Any opinions?

Jeroen.



More information about the Python-Dev mailing list