Does PyModule_GetDict return information about class method variables?
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Fri Aug 10 09:19:00 EDT 2007
On Fri, 10 Aug 2007 05:54:03 -0700, MD wrote:
> On Aug 10, 12:43 am, Marc 'BlackJack' Rintsch <bj_... at gmx.net> wrote:
>> class A(object):
>> def foo(self):
>> bar = 42
>>
>> The local name `bar` only exists if `foo()` is called on an instance of `A`.
>
> Thanks for your reply. I am calling my extension function from the
> class method itself. So at that point the variable does exist. I am
> puzzled why PyModule_GetDict is not able to access the variable even
> though it does exist at that point.
It does not exist in the module or the function object but on the stack.
Let's go to C again:
void baz(void);
void foo(void)
{
int bar = 42;
baz();
}
How do you get from `baz()` the value of `foo()`\s local `bar`? Other
than ugly non portable stack trickery!?
Why don't you just give the object as argument to your C function?
Wanting to poke around in the callers name space is code smell. Don't do
that.
Ciao,
Marc 'BlackJack' Rintsch
More information about the Python-list
mailing list