[Python-ideas] Tweaking closures and lexical scoping to include the function being defined
Jim Jewett
jimjjewett at gmail.com
Thu Sep 29 22:24:05 CEST 2011
On Thu, Sep 29, 2011 at 3:03 PM, Eric Snow <ericsnowcurrently at gmail.com> wrote:
> The alternative is to leave nonlocal as just a simple statement, but
> change its behavior when the name is not found inside a containing
> function scope. Currently that is a syntax error.
Until this discussion started, I had not realized that nonlocal was
limited to names from containing *function* scopes; I had thought that
it would end up using the module-level globals if need be.
Having it indicate a scope *closer* than all the scopes where it
already looked but failed to find the name seems wrong.
That said, my intuition may be suspect; outside examples, I have never
used nonlocal, and work fairly hard to avoid global. I don't *like*
boxing up my variables, but it still seems less offensive than a
global statement and the resulting side effects.
-jJ
More information about the Python-ideas
mailing list