exec "statement" VS. exec "statement in globals(), locals()
Ted
roboteddy at gmail.com
Wed Jul 21 17:56:56 EDT 2004
--------
def f():
ret = 2
exec "ret += 10"
return ret
print f()
--------
The above example prints '12'. However, the following example prints
'2':
--------
def f():
ret = 2
exec "ret += 10" in globals(), locals()
return ret
print f()
--------
According to (http://docs.python.org/ref/exec.html), "In all cases, if
the optional parts are omitted, the code is executed in the current
scope." Don't globals() and locals() comprise the current scope? Why
isn't the output of each example the same?
More information about the Python-list
mailing list