[Python-Dev] Explicit Lexical Scoping (pre-PEP?)
Scott Dial
scott+python-dev at scottdial.com
Wed Jul 5 11:40:40 CEST 2006
Guido van Rossum wrote:
> Would this also use ..num to refer to num in an outer scope two levels removed?
I realize this was a wink, but it is a valid problem with the
"dot"-proposal.
def foo(n):
def bar(n):
def baz():
return .n
So, which 'n' outer 'n' is being referenced? Seems like you need to
either be able to do multiple dots (ugly, hard to read) or only do a
single-step outwards reference. But then that has it's own problems, if
I meant the 'n' passed into 'foo', then I have to resort to such
nonsense as:
def foo(n):
def bar(n):
foon = .n
def baz():
return .foon
It would almost be cute if you could do something like ".foo.n" to get
to the correct variable. If python maintains it's current scoping rules,
then it seems like it works out, but I haven't thought this one all the
way through.
def foo(n):
def bar(n):
def baz():
return .foo.n + .bar.n
--
Scott Dial
scott at scottdial.com
scodial at indiana.edu
More information about the Python-Dev
mailing list