On 7/8/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> 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/) _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com