[Python-ideas] Before and after the colon in funciton defs.
tjreedy at udel.edu
Fri Sep 23 23:18:13 CEST 2011
On 9/23/2011 7:26 AM, H. Krishnan wrote:
> Is there a restriction that nonlocal can be used only inside nested
>>> def f(): nonlocal a; return a
SyntaxError: no binding for nonlocal 'a' found
Yes, althought the current 3.2.2 manual does not make that clear enough.
I believe there is a tracker issue to clarify this.
> Also, would it make sense/be possible to execute nested class/function
> definitions at function definition time.
No. The body of a function is executed when the function is called.
However, it is already the case that code objects for nested functions
*are* compiled just once. So just a nested function object has to be
assembled with each call. Default args and cell vars are part of each
new function object.
Terry Jan Reedy
More information about the Python-ideas