I have a small problem how to get the scope from a C-API function.
Check out this code snippet:
[code]
variable = 3
def test():
print variable #output: 3
print globals() # ... 'variable': 3, ...
test()
[/code
In my case I know there is a variable in the scope where this function
is called from, but I dont know how to get it.
Check out:
[code]
PyObject *MyFunction_Test(PyObject* self, PyObject *args, PyObject
*keywords)
{
... ?
}
[/code]
Is it possible to get the dictionary of the scope where this function
is called from?
Thanks a lot!!
Bye, googler
> I have a small problem how to get the scope from a C-API function.
> Check out this code snippet:
>
> [code]
> variable = 3
>
> def test():
> print variable #output: 3
> print globals() # ... 'variable': 3, ...
>
> test()
> [/code
>
>
> In my case I know there is a variable in the scope where this function
> is called from, but I dont know how to get it.
Note that in this case the relevant scope is the one where the Python
function was *defined*, not where it is *called*.
> Check out:
>
> [code]
> PyObject *MyFunction_Test(PyObject* self, PyObject *args, PyObject
> *keywords)
> {
> ... ?
> }
> [/code]
>
> Is it possible to get the dictionary of the scope where this function
> is called from?
Yes, you can obtain the global variables of the current execution frame
using PyEval_GetGlobals()
--
Gabriel Genellina