R. David Murray added the comment:

I believe that you are correct: special methods are looked up on the type, and 
this is assumed implicitly in the Class Binding description. (This was not 100% 
true in python2, but it is in current python3.)  But the Class Binding 
description is correct, since if the __get__ method is *not* defined on the 
type (of the descriptor), the descriptor instance itself is returned (so 
explicitly calling type in the "equivalent expression" would be wrong).

This is one of the most complex topics to describe in Python (I still don't 
have it solid in my head and I've been working with Python for years now).  If 
we can come up with clearer wording that is good, but we've tried several times 
already to improve it :(

I don't know what you are referring to for the 'instance binding' that makes 
the same 'mistake', but I suspect it is also covered by the "special methods 
are looked up on the type" rule.

nosy: +r.david.murray
versions:  -Python 3.2, Python 3.3, Python 3.6

Python tracker <rep...@bugs.python.org>
Python-bugs-list mailing list

Reply via email to