[Python-ideas] Before and after the colon in funciton defs.
Ron Adam
ron3200 at gmail.com
Fri Sep 23 17:40:12 CEST 2011
On Fri, 2011-09-23 at 11:11 +1000, Nick Coghlan wrote:
> 4. Function scoped variables
>
> This is the approach most analogous to C's static variables - named
> variables that are shared across all invocations of a function, rather
> than being local to the current invocation. In essence, each function
> becomes its own closure - just as a function can share state across
> invocations by using an outer function for storage, this technique
> would allow a function to use its *own* cell array for such storage.
> Framing the idea that way also suggests a fairly obvious spelling:
>
> def f(x):
> nonlocal i=i # Use 'f' as a closure over *itself*
> return x + i
>
> With this spelling, the above would be roughly equivalent to:
>
> def outer():
> i = i
> def f(x):
> return x + i
> return f
> f = outer()
>
> The only visible difference would be that the cell referenced by 'i'
> would be stored directly on 'f' rather than on an outer function.
+1
I think this will work just fine.
Will the same change be made to global?
Cheers,
Ron
More information about the Python-ideas
mailing list