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/archive%40mail-archive.com