[Python-Dev] PEP 447: add type.__locallookup__

Ronald Oussoren ronaldoussoren at mac.com
Thu Sep 12 16:25:56 CEST 2013


On 9 Sep, 2013, at 17:43, Mark Shannon <mark at 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 <ethan at stoneleaf.us <mailto:ethan at 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 at python.org <mailto:Python-Dev at 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 at 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 at python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: https://mail.python.org/mailman/options/python-dev/ronaldoussoren%40mac.com



More information about the Python-Dev mailing list