Silly function call lookup stuff?
mahs at telcopartners.com
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.
Would you apply this optimization to all lookups in outer scopes, or just
callables? Why? ;-)
More information about the Python-list