Sono un po 'curioso perché il codice seguente solleva uno NameError
.exec non rileva le variabili dalla chiusura
>>> s = """
... foo = [1,2,3]
... def bar():
... return foo[1]
... """
>>> namespace = {}
>>> exec(s, {'__builtins__': None}, namespace)
>>> print namespace
{'foo': [1, 2, 3], 'bar': <function bar at 0x7f79871bd0c8>}
>>> namespace['bar']()
al normale livello di interprete, possiamo trovare foo
in bar.func_globals
o bar.func_closure
se in una funzione. Credo che sto chiedendo perché namespace['bar']
non mette in foo
func_closure
...