[Python-Dev] Explicit Lexical Scoping (pre-PEP?) (original) (raw)

skip at pobox.com skip at pobox.com
Sat Jul 8 00:10:04 CEST 2006


Guido> Well, personally I'm for allowing full rebinding semantics but
Guido> only when a 'global' (or 'nonlocal') statement is used
Guido> first. Making augmented assignment automatically imply 'global'
Guido> etc. seems too magical to me.

So, if I understand correctly, in the presence of a global statement search just goes up the lexical chain looking for the first occurrence of the variable to modify?

x = 0
def f():
    x = 1
    def g():
        global x
        x = 2
        print x
    g()
    print x
f()
print x

Today it prints

2
1
2

You're suggesting it will print

2
2
0

?

Sounds reasonable to me. If we're talking py3k I'd chuck "global" as a keyword though and replace it with something like "outer".

Skip



More information about the Python-Dev mailing list