[Python-Dev] About [].append == [].append
Serhiy Storchaka
storchaka at gmail.com
Thu Jun 21 15:53:02 EDT 2018
21.06.18 14:25, Jeroen Demeyer пише:
> 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
I think this is a bug. These bound methods can't be equal because they
have different side effect.
The use case for using "is" for __self__ is described by the OP of
issue1617161. I don't know use cases for using "==".
There is a related problem of hashing. Currently
bound methods are not hashable if __self__ is not hashable. This makes
impossible using them as dict keys.
More information about the Python-Dev
mailing list