[SciPy-dev] Re: Scipy-dev digest, Vol 1 #86 - 7 msgs
Pat Miller
pnmiller at pacbell.net
Tue Feb 12 00:37:28 EST 2002
Pearu writes:
>Pat wrote:
>>It is a bit tricky as you cannot just use python tricks to update
>>the local dictionary for affect:
> See http://www.python.org/doc/current/lib/built-in-funcs.html:
> locals()
I know all about this... the value that locals() returns is
actually computed on the fly and stashed into an attribute
of the code object. It mirrors the elements of a local
stack that is built on executing the code frame (that is why
changing it doesn't affect the state, the dictionary is
a one way reference to the frame.
>
> And I think you should not modify locals() dictionary from Python
> C/API either.
The point is to get things like
a = 3
weave.inline("a += 1")
to update the value of 'a' as if the code were written
a = 3
a += 1
And it really should be done inside the C API because of speed
concerns. In some sense, the weave.inline is _really_ a
specialized replacement for the __builtin__ exec function.
This means that the point is to muck with the local and global
state.
Pat
More information about the SciPy-Dev
mailing list