PyEval_GetLocals and unreferenced variables

Chris Angelico rosuav at
Wed Nov 26 11:51:33 CET 2014

On Wed, Nov 26, 2014 at 9:46 PM, Kasper Peeters <kasper at> wrote:
> I agree that in this example that would be the natural thing to do.
> My case is more tricky though: I have something like
>     def fun():
>        cfun_that_creates_q_in_local_scope()
>        def fun2():
>            cfun_that_wants_to_see_if_q_is_available()
> So the Python side actually doesn't see 'q' directly at all.
> I am willing to elaborate on this if you want (I have fairly good
> reasons to do things this way, mostly having to do with historical
> constraints of an older C library that I cannot avoid), but it
> requires more space.

To be honest, that's just made it even more weird :) You're creating
something in a local namespace that the Python compiler isn't aware

I wonder, would a 'nonlocal q' declaration inside fun2 affect things any?

Otherwise, maybe there's some completely different way to transfer
information around. Using locals in this way seems fraught with peril.


More information about the Python-list mailing list