Re: [Python-Dev] About [].append == [].append

2018年6月21日 14:16:18 -0700

On 21.06.2018 23:40, Guido van Rossum wrote:
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.
In this light, methods rather shouldn't have a rich comparison logic at all -- at the very least, until we have a realistic use case and can flesh out the requirements for it. In my previous message, I meant that if they do have that logic, the right way is what `method_richcompare' does. And that was apparently what the method's author (that you might be familiar with) was thinking in https://github.com/python/cpython/commit/47b9ff6ba11fab4c90556357c437cb4feec1e853 -- and even then and there, they were hesitant about the feature's usefulness. But Serhiy has just disproven that that is the right way which looks like the final nail into its coffin.
On Thu, Jun 21, 2018, 12:55 Serhiy Storchaka <[email protected] <mailto:[email protected]>> 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
 [email protected] <mailto:[email protected]>
 https://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
 https://mail.python.org/mailman/options/python-dev/guido%40python.org
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/vano%40mail.mipt.ru
--
Regards,
Ivan
_______________________________________________
Python-Dev mailing list
[email protected]
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