def f(): L=[0] def counter(): L[0]=L[0]+1 return L[0] return counter
最后一行不小心多了一个缩进?
a=f(),多次执行a(),依次输出1,2,3,4,5,为什么每一次 L[0]会发生改变,不是每次调用都要执行L=[0]?
因为我定义的L=[0]是一个list,它的值是可以改变的,每次执行counter()的时候,它的值递增1,即返回给f()的值递增1
Sign in to make a reply
用户6878165384
def f():
L=[0]
def counter(): L[0]=L[0]+1
return L[0]
return counter