Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #12442 > unrolled thread

Re: Returning a value from exec or a better solution

Started byEthan Furman <ethan@stoneleaf.us>
First post2011-08-30 11:19 -0700
Last post2011-08-30 11:19 -0700
Articles 1 — 1 participant

Back to article view | Back to comp.lang.python

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: Returning a value from exec or a better solution Ethan Furman <ethan@stoneleaf.us> - 2011-08-30 11:19 -0700

#12442 — Re: Returning a value from exec or a better solution

FromEthan Furman <ethan@stoneleaf.us>
Date2011-08-30 11:19 -0700
SubjectRe: Returning a value from exec or a better solution
Message-ID<mailman.577.1314727377.27778.python-list@python.org>
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. 
  Then when the exec actually runs, any assignments, definitions, etc, 
from the user supplied string will be added.


> I spoke a bit too soon with the "works flawlessly" post.  In addition to 
> your issue, there is also the problem that supplying an empty 
> environment does not allow the user to call necessary functions (like 
> scheme_eval).

So, just like an implementation, add the functions to the CapturingDict 
before the exec.

One thing to keep in mind:  the CapturingDict only remembers the *last* 
thing created/assigned... so if the user code has more than one 
def/class/name assignment, you won't have ready access to the first 
items, only that last one.

~Ethan~

[toc] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web