[Python-3000] non-local assignment (original) (raw)
Chris Rebert cvrebert at gmail.com
Thu May 29 08:08:02 CEST 2008
- Previous message: [Python-3000] non-local assignment
- Next message: [Python-3000] non-local assignment
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
It's been decided to go w/ the "nonlocal" keyword to declare outer variables (ala the "global" keyword) rather than using an alternate assignment operator (which was one of the competing proposals). It's too late to make a change such as your suggestion because PEP 3104 ( http://www.python.org/dev/peps/pep-3104/ ), which proposed "nonlocal", has already been accepted (and BDFL-blessed IIRC).
Furthermore, there's no precedent for Python operators to use both a keyword and punctuation together like "set!", and "set" can't be used instead as it's the name of a builtin type (in Py3K).
In the future, searching the list archives can be quite helpful.
- Chris Rebert
On Wed, May 28, 2008 at 10:55 PM, Daniel Wong <allyourcode at gmail.com> wrote:
I'm confused by the section on "no alternate binding operator" in PEP 3099. On the one hand, it says no alternative binding operator will be considered; yet the link provided shows that Guido is in favor of developing a syntax for non-local assignment. Please excuse me if this post violates that rule. Here's my suggestion on what the syntax should look like:
set! var val Scheme users will recognize this syntax, which has the distinct advantage of not being confusable with regular assignment; whereas, this is an unfortunate feature of :=, which Guido has already rejected. The way this is supposed to work is you go to the inner-most scope in which var is declared and change its value there to val. If var does not occur in any containing scope, you could raise an UndeclaredVariable exception. Thoughts? Daniel
Python-3000 mailing list Python-3000 at python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/cvrebert%40gmail.com
- Previous message: [Python-3000] non-local assignment
- Next message: [Python-3000] non-local assignment
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]