没看懂这里
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
看了解析还没懂
求助 nonlocal x 的作用
他的作用 就相当于每次调用x+=1都修改了 x 初始值 所以说第一次print的时候返回6之后,第二行的x就变为6,然后最后返回7对吗 柠檬冲冲冲 发表于 2021-8-11 16:55
所以说第一次print的时候返回6之后,第二行的x就变为6,然后最后返回7对吗
是的,如果没有 nonlocal 那么内函数不能修改外部函数的值
页:
[1]