On 9 Sep, 2013, at 17:43, Mark Shannon <m...@hotpy.org> wrote: > I would like time to investigate this further, but at the moment I think it > will either make attribute lookup poorly defined or slow. > > Of the top of my head, the problem as a I see it is basically this: > Currently, type.__getattribute__() is a fixed point in the lookup of > attributes. > The proposal means that a fixed point is not reached until the cls parameter > of type.__getattribute__() is either object or type, > otherwise type.__getattribute__() and type.__locallookup__ must bounce back > and forth. > > This will slow down *every* attribute lookup for what is a fairly obscure use > case.
I did a benchmark run (see the pep for details) and that seems to indicate that the performance impact is very small, possibly because the patch keeps the attribute lookup cache used by _PyType_Lookup. Anyway, I'm glad that there is now some real discussion on the proposal. Not unsurprisingly I'd love to have this, or something simular, in 3.4. I had hoped to repost the PEP a while back with more information on how the API would affect PyObjC (code removal, performance impact), but haven't had time to move forward on that front :-( Ronald > > Cheers, > Mark. > > On 09/09/13 16:27, Guido van Rossum wrote: >> Let's just accept this PEP. It looks like a nice addition to the metaclass >> machinery and I don't think we'll get much more useful feedback by waiting. >> >> >> On Mon, Sep 9, 2013 at 7:30 AM, Ethan Furman <et...@stoneleaf.us >> <mailto:et...@stoneleaf.us>> wrote: >> >> On 07/30/2013 11:17 PM, Ronald Oussoren wrote: >> >> >> And something I forgot to ask: is anyone willing to be the >> BDFL-Delegate for >> PEP 447? >> >> >> *Bump*. >> >> It would be nice if this could make into 3.4. >> >> -- >> ~Ethan~ >> >> _________________________________________________ >> Python-Dev mailing list >> Python-Dev@python.org <mailto:Python-Dev@python.org> >> https://mail.python.org/__mailman/listinfo/python-dev >> <https://mail.python.org/mailman/listinfo/python-dev> >> Unsubscribe: >> https://mail.python.org/__mailman/options/python-dev/__guido%40python.org >> <https://mail.python.org/mailman/options/python-dev/guido%40python.org> >> >> >> >> >> -- >> --Guido van Rossum (python.org/~guido <http://python.org/~guido>) >> >> >> _______________________________________________ >> 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/mark%40hotpy.org >> > _______________________________________________ > 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/ronaldoussoren%40mac.com _______________________________________________ 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