[Python-Dev] About .append == .append
Guido van Rossum
gvanrossum at gmail.com
Thu Jun 21 16:40:27 EDT 2018
I'm with Serhiy here, for mutable values I don't think the methods should
compare equal, even when the values do. For immutables I don't care either
way, it's an implementation detail.
On Thu, Jun 21, 2018, 12:55 Serhiy Storchaka <storchaka at gmail.com> wrote:
> 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.
> Python-Dev mailing list
> Python-Dev at python.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-Dev