闭包
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没被释放,但是每次调用的时候x还是被初始化成5了呀?
求大佬解答 def funX():
x = 5
def funY():
nonlocal x
x += 1
return x
return funY
a = funX()#x只在这里初始化一次
print(a())#这里执行的是funY,不再执行funX,所以x没有再次初始化为5,下面两行道理一样
print(a())
print(a())
页:
[1]