Silly function call lookup stuff?

Michael Spencer mahs at
Tue Sep 27 22:56:53 CEST 2005

Lucas Lemmens wrote:
> Dear pythonians,
> I've been reading/thinking about the famous function call speedup 
> trick where you use a function in the local context to represent 
> a "remoter" function to speed up the 'function lookup'.
> "This is especially usefull in a loop where you call the function a 
> zillion time" they say.
> I think this is very odd behavior. 
> Why isn't the result of the first function-lookup cached so that following
> function calls don't need to do the function-lookup at all?
I guess because the function name may be re-bound between loop iterations.  Are 
there good applications of this?  I don't know.

> And if the context changes (an import-statement say) reset the
> cached 'function-lookups'.

In general an object doesn't know what names are bound to it and there are many 
ways besides an import statement of binding/re-binding, so "if the context 
changes" is easier said than done.

> This way any function would only need to be looked up once.
> L.
Would you apply this optimization to all lookups in outer scopes, or just 
callables?  Why? ;-)


More information about the Python-list mailing list