[Python-Dev] Skiping searching throw dictionaries of mro() members. (original) (raw)

Sokolov Yura falcon at intercable.ru
Wed Sep 14 20:11:03 CEST 2005


Phillip J. Eby wrote:

At 09:12 PM 9/14/2005 +0400, Sokolov Yura wrote:

We could cash looks by this way: Store with a class its version. Every time after creation when we change a class (add,remove or chage class member, including base, bases and mro) , we increase the version number. Lets call it VERSION FYI, there is already a mechanism for new-style classes that notifies subclasses of changes to the base class; this mechanism could be used to push cache flushes downward, rather than doing version checking upward. I didn't know it. So, if this thing works, it should be used.

Another think. I do not really know, how emplemented scopes, but could this caching be applied to a scope realisation? So we "derive" current scope from his outer and cache all lookups, that goes out of this scope. Top scope is "derived" from a module and module it self "derived" from builtins. I think, there not many different deep upper lookups in current programs, but many reapeating, and not often we change outer scope, so cache will be fine.



More information about the Python-Dev mailing list