关于函数的问题求解(闭包和非局部变量)
def funX():x = 5
def funY():
nonlocal x
x += 1
return x
return funY
a = funX()
print(a())
print(a())
print(a())
提问:为啥结果不是6 6 6 ,而是6 7 8,这不是调用了三次funX()吗?每次调用X不是都会被赋值X = 5吗? 本帖最后由 Twilight6 于 2020-6-5 22:59 编辑
只有第一次 a = funX() 调用了一次 funX() 函数 之后的都是在调用 funY() 函数
因为第一次调用返回的是 funY 这个函数 ,所以你每次调用一次 a() 就相当于 调用一次 funY()
Twilight6 发表于 2020-6-5 22:56
只有第一次 a = funX() 调用了一次 funX() 函数 之后的都是在调用 funY() 函数
因为第一次调用返回的 ...
又是你?这个明白了 lingedu 发表于 2020-6-5 23:14
又是你?这个明白了
{:10_279:}
页:
[1]