一个有“闭包”的函数!
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呢?我想的应该是打印 6 6 6啊!
还是我全局变量和局部变量还没有搞明白吗? 每次调用 funY,x 都会加 1 zltzlt 发表于 2020-4-30 21:49
每次调用 funY,x 都会加 1
能说的再详细些吗?我还是不懂
想摸妹妹大腚 发表于 2020-4-30 21:50
能说的再详细些吗?我还是不懂
此时的 a 完全等于 funX 中的 funY,每次调用 a 就相当于调用 funY,x 的值会加 1 。
注意,这里只是单纯调用 funY,并不会重新调用 funX 。 zltzlt 发表于 2020-4-30 21:51
此时的 a 完全等于 funX 中的 funY,每次调用 a 就相当于调用 funY,x 的值会加 1 。
注意,这里只是 ...
熬谢谢懂了
页:
[1]