On Jul 15, 2009, at 1:55 PM, Rodrigue wrote:
Basically, I was very surprised to discover that e() raises an
exception, but even more that e_raise() points to
if not MY_GLOBAL Is the problem not really when I assign?
My assumption is that some reordering is happening behind the scenes
that creates a situation similar to the += which assigns hence expects
to be at the local level.
The determination of whether a name is a reference to a local or
global variable is made at compile time. When a function contains a
single assignment (or augmented assignment) to a name, the compiler
generates bytecode such that all references to that name within the
function will be looked up in the local scope only, including those
before the assignment statement.
-Miles
--
http://mail.python.org/mailman/listinfo/python-list