wmy1212 发表于 2021-6-12 16:42:52

甲鱼的一个“闭包”例子

def funX():
    x = 5
    def funY():
      nonlocal x
      x += 1
      return x
    return funY

a = funX()
print(a())
print(a())
print(a())
这个为什么打印出来不是666而是678?
我想的是,在执行到第二个和第三个print的时候,x被重新赋值为5,然后再+1,结果是6.

Twilight6 发表于 2021-6-12 16:47:07



同样的问题,可以看看这里的文章~:

[已解决] 内嵌函数和闭包课后题
https://fishc.com.cn/thread-172822-1-1.html
(出处: 鱼C论坛)


wmy1212 发表于 2021-6-12 16:54:57

Twilight6 发表于 2021-6-12 16:47
同样的问题,可以看看这里的文章~:

[已解决]内嵌函数和闭包课后题


谢谢大神,你几乎承包了我所有问题的解答{:5_93:}

Twilight6 发表于 2021-6-12 16:56:58

wmy1212 发表于 2021-6-12 16:54
谢谢大神,你几乎承包了我所有问题的解答

{:9_240:}
页: [1]
查看完整版本: 甲鱼的一个“闭包”例子