[Python-Dev] Explicit Lexical Scoping (pre-PEP?) (original) (raw)
Guido van Rossum guido at python.org
Sat Jul 8 05:08:40 CEST 2006
- Previous message: [Python-Dev] Explicit Lexical Scoping (pre-PEP?)
- Next message: [Python-Dev] Explicit Lexical Scoping (pre-PEP?)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 7/8/06, skip at pobox.com <skip at pobox.com> wrote:
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 ?
Right. And if the search finds no scope that defines x, it's a compile-time error (that's also new).
Sounds reasonable to me. If we're talking py3k I'd chuck "global" as a keyword though and replace it with something like "outer".
This is still under debate. I don't think we ought to change this in Python 2.x until we've settled on the 3.x syntax and semantics; eventually (in Python 2.9 or so :-) we can backport it with a future statement.
-- --Guido van Rossum (home page: http://www.python.org/~guido/)
- Previous message: [Python-Dev] Explicit Lexical Scoping (pre-PEP?)
- Next message: [Python-Dev] Explicit Lexical Scoping (pre-PEP?)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]