On 2/21/06, Phillip J. Eby <[EMAIL PROTECTED]> wrote: > Here's a crazy idea, that AFAIK has not been suggested before and could > work for both globals and closures: using a leading dot, ala the new > relative import feature. e.g.: > > def incrementer(val): > def inc(): > .val += 1 > return .val > return inc > > The '.' would mean "this name, but in the nearest outer scope that defines > it". Note that this could include the global scope, so the 'global' > keyword could go away in 2.5. And in Python 3.0, the '.' could become > *required* for use in closures, so that it's not necessary for the reader > to check a function's outer scope to see whether closure is taking > place. EIBTI.
FWIW, I think this is nice. Since it uses the same dot-notation that normal attribute access uses, it's clearly accessing the attribute of *some* namespace. It's not perfectly intuitive that the accessed namespace is the enclosing one, but I do think it's at least more intuitive than the suggested := operator, and at least as intuitive as a ``global``-like declaration. And, as you mention, it's consistent with the relative import feature. I'm a little worried that this proposal will get lost amid the mass of other suggestions being thrown out right now. Any chance of turning this into a PEP? Steve -- Grammar am for people who can't think for myself. --- Bucky Katt, Get Fuzzy _______________________________________________ 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