[Python-Dev] Using and binding relative names (was Re: PEP for Better Control of Nested Lexical Scopes) (original) (raw)
Steven Bethard steven.bethard at gmail.com
Wed Feb 22 20:41:54 CET 2006
- Previous message: [Python-Dev] Using and binding relative names (was Re: PEP for Better Control of Nested Lexical Scopes)
- Next message: [Python-Dev] Using and binding relative names (was Re: PEP for Better Control of Nested Lexical Scopes)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 2/21/06, Phillip J. Eby <pje at telecommunity.com> 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
- Previous message: [Python-Dev] Using and binding relative names (was Re: PEP for Better Control of Nested Lexical Scopes)
- Next message: [Python-Dev] Using and binding relative names (was Re: PEP for Better Control of Nested Lexical Scopes)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]