Returning a value from exec or a better solution
Ethan Furman
ethan at stoneleaf.us
Tue Aug 30 16:59:34 EDT 2011
Rob Williscroft wrote:
> Ethan Furman wrote in news:4E5D29C8.8010206 at stoneleaf.us in
> gmane.comp.python.general:
>
>> Jack Trades wrote:
>>> On Tue, Aug 30, 2011 at 2:37 AM, Rob Williscroft wrote:
>>>> If an impementation (as you say up thread) can populate globals
>>>> or locals with whatever they want, then how do you know that last
>>>> item added was the function definition the user supplied ?
>> Because the implementation will add things before the exec is processed.
>
> How do you know this ?, it isn't what the docs say.
>
> http://docs.python.org/reference/simple_stmts.html#the-exec-statement
The docs don't say when, true -- so I don't know for sure that all
additions happen before the exec since I haven't delved into the source
code...
Okay, just perused builtin_exec in bltinmodule.c, and I can say that
cPython (somewhere in 3.2-3.3 land) only adds __builtins__ if not
already there, and that it does it first.
Which makes sense -- after all, what's the point of adding stuff to
globals() *after* the code has been run?
~Ethan~
More information about the Python-list
mailing list