[Python-Dev] PEP for Better Control of Nested Lexical Scopes (original) (raw)
Phillip J. Eby pje at telecommunity.com
Wed Feb 22 19:56:48 CET 2006
- Previous message: [Python-Dev] PEP for Better Control of Nested Lexical Scopes
- Next message: [Python-Dev] PEP for Better Control of Nested Lexical Scopes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
At 06:14 AM 2/22/2006 -0500, Jeremy Hylton wrote:
On 2/22/06, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote: > Mark Russell wrote: > > > PEP 227 mentions using := as a rebinding operator, but rejects the > > idea as it would encourage the use of closures. > > Well, anything that facilitates rebinding in outer scopes > is going to encourage the use of closures, so I can't > see that as being a reason to reject a particular means > of rebinding. You either think such rebinding is a good > idea or not -- and that seems to be a matter of highly > individual taste.
At the time PEP 227 was written, nested scopes were contentious. (I recall one developer who said he'd be embarassed to tell his co-workers he worked on Python if it had this feature :-).
Was this because of the implicit "inheritance" of variables from the enclosing scope?
Rebinding was more contentious, so the feature was left out. I don't think any particular syntax or spelling for rebinding was favored more or less.
> On this particular idea, I tend to think it's too obscure > as well. Python generally avoids attaching randomly-chosen > semantics to punctuation, and I'd like to see it stay > that way. I agree.
Note that '.' for relative naming already exists (attribute access), and Python 2.5 is already introducing the use of a leading '.' (with no name before it) to mean "parent of the current namespace". So, using that approach to reference variables in outer scopes wouldn't be without precedents.
IOW, I propose no new syntax for rebinding, but instead making variables' context explicit. This would also fix the issue where right now you have to inspect a function and its context to find out whether there's a closure and what's in it. The leading dots will be quite visible.
- Previous message: [Python-Dev] PEP for Better Control of Nested Lexical Scopes
- Next message: [Python-Dev] PEP for Better Control of Nested Lexical Scopes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]