[Python-Dev] PEP 447: add type.__locallookup__
Steven D'Aprano
steve at pearwood.info
Fri Sep 13 14:23:28 CEST 2013
On Fri, Sep 13, 2013 at 08:42:46PM +1000, Nick Coghlan wrote:
> Perhaps "__getdescriptor__" would work as the method name? Yes, it can
> technically return a non-descriptor,
So technically that name is, um, what's the term... oh yes, "a lie".
:-)
> but the *primary* purpose is to
> customise the retrieval of objects that will be checked to see if they're
> descriptors.
If that's the case, the PEP should make that clear.
[Aside: the PEP states that the method shouldn't invoke descriptors.
What's the reason for that? If I take the statement literally, doesn't
it mean that the method mustn't use any other methods at all? Surely
that can't be what is intended, but I'm not sure what is intended.]
> It *won't* be invoked when looking for ordinary attributes in
> an instance dict, but *will* be invoked when looking on the class object.
Just to be clear, if I have:
instance = MyClass()
x = instance.name
and "name" is found in instance.__dict__, then this special method will
not be invoked. But if "name" is not found in the instance dict, then
"name" will be looked up on the class object MyClass, which may invoke
this special method. Am I correct?
--
Steven
More information about the Python-Dev
mailing list