Guido van Rossum wrote:
> I would just rip it out.

It turns out that it's not so easy. The exec statement currently can
modify the locals, which means that

def f():
     exec "a=1"
     print a

succeeds. To make that possible, the compiler flags scopes containing
exec statements as unoptimized and does not assume unbound names to
be global.

With exec being a function, currently the above function won't work
because "a" is assumed to be global.

I can see only two resolutions:

* change exec() semantics so that it cannot modify the locals
* do not make exec a function

Georg

_______________________________________________
Python-3000 mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-3000
Unsubscribe: 
http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com

Reply via email to