
Skip Montanaro wrote:
John> global foo from def
How do you indicate the particular scope to which foo will be bound (there can be many lexically enclosing function definitions)? Using my example again:
def outer(a): x = a def inner(a): x = 42 def innermost(r): global x from def # <--- your notation x = r print " inner, x @ start:", x innermost(random.random()) print " inner, x @ end:", x print "outer, x @ start:", x inner(a) print "outer, x @ end:", x
how do you tell Python that x inside innermost is to be associated with the x in inner or the x in outer?
I can think of two reasonable possibilities--either it refers to the innermost possible variable, or the compiler rejects this case outright. Either way the problem is easy to solve by renaming one of the variables. Sorry I wasn't clear--I really only meant to propose a new syntax for the already-proposed "global foo in def". For some reason I can't quite put my finger on, "in def" looks to me like it's referring to the function where the statement occurs, but "from def" looks like it refers to some other function. jw