Is this possible: scoping question with exec
Brian Kelley
bkelley at wi.mit.edu
Fri Aug 24 10:41:39 EDT 2001
Bengt Richter wrote:
>On Thu, 23 Aug 2001 15:34:12 -0500, Brian Kelley <bkelley at wi.mit.edu> wrote:
>
>>Running Python 2.1
>>
>>def a():
>> return b
>>
>>exec "a()" in {'b':1, 'a':a}
>>
>>b doesn't seem to passed as a global into the function a.
>>
>This seems possible:
> >>> exec """def a():
> ... print 'from a()'
> ... return b
> ... print a()
> ... """ in {'b':1, 'a':a}
> from a()
> 1
>
>I'd guess the dictionary for globals used by the function is
>determined by the context of the execution of the def?
>
If that's the case though, I would have expected a compiler/syntax
error. I was hoping that I could pass globals into a compiled function
though. Guess I'll have to look at the source code and see if this is
not possible.
Brian Kelley
Whitehead Institute for Biomedical Research
More information about the Python-list
mailing list