[Python-Dev] nested scopes confusion

Guido van Rossum guido@python.org
Tue, 04 Dec 2001 14:59:39 -0500


> Answering my own question (sorry), this works:
> 
> 
> def functions():
>     result = []
>     for i in range(10):
>         def make_function(index):
>             def mth():
>                 return index
>             return mth
>         mth = make_function(i)
>         result.append(mth)
>     i = 25
>     return result
> 
> for mth in functions():
>     print mth()
> 
> But how will I understand this 3 months from now?

What's the problem with understanding this code?  It looks totally
clear to me.  You could add a few comments or use more fancyful
function names.

--Guido van Rossum (home page: http://www.python.org/~guido/)