[EMAIL PROTECTED] wrote: > I've heard 2 people complain that word 'global' is confusing. > > Perhaps 'modulescope' or 'module' would be better? > > Am I the first peope to have thought of this and suggested it? > > Is this a candidate for Python 3000 yet? > > Chris
Maybe a solution would be best that is able to resolve shadowing of a variable in an explicit manner. Example. you might have the following nested function: x = 0 def h(): x = 1 # module scoped x will be shadowed def g(): x = 2 # module scoped x and h's local x will be shadowed def f(): print x # printing x defined locally in g f() g() The module level x is always accessible from each inner function using the global keyword but it is not possible to access x defined locally in h from f. Two hypothetical variants using an "unshadow operator" & explicitely: x = 0 def h(): x = 1 def g(): x = 2 def f(): print &x # unshadowing x defined in h f() g() x = 0 def h(): x = 1 def g(): x = 2 def f(): print &&x # unshadowing x defined on module level f() g() Since we can always shadow some module scoped variable defining a local one we might create a side-effect binding values to the unshadowed name: x = 0 def f(): x = 1 &x = 7 >>> f() >>> x 7 Regards, Kay -- http://mail.python.org/mailman/listinfo/python-list