
Oct. 21, 2003
11:09 p.m.
Why not make local variables attributes of the function, i.e. replace:
def inner(): global x in outer x = 42
with:
def inner(): outer.x = 42
Because this already means something! outer.x refers to the attribute x of function outer. That's quite different than local variable x of the most recent invocation of outer on the current thread's call stack!
Global variables could then be assigned via: global.x = 42
This has a tiny bit of appeal, but not enough to bother. --Guido van Rossum (home page: http://www.python.org/~guido/)