关于闭包的问题
def funX():x = 5
def funY():
nonlocal x
x += 1
return x
return funY
a = funX()
print(a())
print(a())
print(a())
为什么从第二次开始打印x就从6开始计算了而不是5呢,不是重新调用的话应该重新初始化吗?能说的详细一点吗? 啥。。。。 第一次你调用函数 funX 将函数funx 的结果 return funY 返回给了 a 则 a = funX() 即是 a = funY
而你直接调用 a() 就是 直接调用 funY() ,而返回 x 的值前面 x += 1 了 所以才会返回6
页:
[1]