On Jul 8, 2009, at 1:35 PM, Paul LaFollette wrote:

I cannot figure out any way to get a hook into the local namespace of
a user defined function.  I have tried making a wrapper class that
grabs the function call and then uses exec to invoke
myfunction.__code__ with my own dictionaries.  This runs the (no
argument) function properly (losing the return value, but I can deal
with that) but never accesses the local logging dictionary that I
specify in the exec() call. Perhaps the local namespace of a function
is not a dict at all?

Right. Within functions, local variable name accesses and assignments are compiled into bytecode instructions (LOAD_FAST, STORE_FAST) that manipulate pointers to objects by indexing directly into a C array in the frame. The "locals" dictionary of a frame is generated on-demand from that array when accessed. There is no way that I'm aware of to directly hook into function namespace access and manipulation.

-Miles

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to