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

Reply via email to