Python闭包问题
6. 以下是“闭包”的一个例子,请你目测下会打印什么内容?def funX():
x = 5
def funY():
nonlocal x
x += 1
return x
return funY
a = funX()
print(a())
print(a())
print(a())
为什么是6 7 8 啊 简单这样理解:
内部函数被保留 a=funX()
a是函数funX的运行结果,即funY,闭包只有a再加括号,然而a()并不是运行funX,而是执行funY的内容,因此x没有重置为5,每次运行+1
页:
[1]