News for hackers. Stuff that matters.
Re:A Python Mystery by dcrosta on Monday April 30, 2012 @05:24PM (#3911586)
It turns out that this is not actually as surprising as I had first thought -- del unbinds a variable from the (local) scope. Since exec results in a new Python frame, it is in that frame's scope that x is deleted, not in the outer frame (of the function exec_code_object_and_return_x).

I'm in the process of blogging about this and other quirks of exec -- I'll post back here once that's up.

Re:A Python Mystery by revelation on Monday April 30, 2012 @05:27PM (#3911608)
At least for Python 2.7, you would expect the code run with exec to share the locals and globals with the environment where you called exec from. Thats why the x = x + 1 works, after all.
Re:A Python Mystery by dcrosta on Monday April 30, 2012 @05:42PM (#3911684)
After reading through the bug you linked, now I agree with your statement and not with my first comment here. Will the madness never end?