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 <storch...@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@python.org > https://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: > https://mail.python.org/mailman/options/python-dev/guido%40python.org >
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com