Hi Marc, 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.
Thanks, -Manas On Aug 10, 12:43 am, Marc 'BlackJack' Rintsch <[EMAIL PROTECTED]> wrote: > On Thu, 09 Aug 2007 19:34:37 -0700, MD wrote: > > I have a variable which is defined inside a class method. When I > > call PyModule_GetDict on the module containing this class, the > > dictionary doesn't contain any information about this variable. Is > > this expected behavior? If so, what options do I have to access this > > variable from my Python C extension. > > You can't access names in methods because they don't exist until you call > the method. It's just like local variables in C. Consider: > > void foo(void) > { > int bar = 42; > > } > > Here `bar` does not exist until you call `foo()` and it disappears as soon > as the function returns. > > It's the very same situation in Python: > > class A(object): > def foo(self): > bar = 42 > > The local name `bar` only exists if `foo()` is called on an instance of `A`. > > Ciao, > Marc 'BlackJack' Rintsch -- http://mail.python.org/mailman/listinfo/python-list