
On 6/18/2011 5:22 PM, Carl M. Johnson wrote:
I will say that I was surprised to discover that `nonlocal` can be used only for outer function locals and not for globals, since the name "nonlocal" seems very general, as if it encompassed all things not local.
We were aware of that when it was selected, after much discussion. Closures were originally read-only partly because it was uncertain how to spell 'write'.
If it could be changed, I think it would be a little more intuitive.
It cannot, I hope for obvious reasons. I should hope that the docs make clear enought that names in a function are *partitioned* into module, closure, and local and that written names are local by default or one of the other 2 if declared. Actually, I think improving the nonlocal doc is part of some issue. -- Terry Jan Reedy