闭包的一个问题,想不通

来源:11-16 再用闭包解决一下_

看雪_0001

2018-02-10

def f1():
    a = 10
    def f2():
        nonlocal a
        a = 20
    return f2
print(f.__closure__[0].cell_contents)

结果为什么还是10,这个该怎么理解


写回答

2回答

张敖辅

2018-02-10

你这个应该不是闭包,

print(f.__closure__[0].cell_contents)

应该是f1

结果就不是10了

0
1
看雪_0001
非常感谢!
2018-02-25
共1条回复

7七月

2018-02-11

这个不是完整代码吧?。f是哪里的?

0
2
看雪_0001
也不是f1。用的jupyter notebook,有两行代码用成前面写的了,已经解决了。 f = f1() f() 少了这两句
2018-02-25
共2条回复

Python3.8系统入门+进阶 (程序员必备第二语言)

语法精讲/配套练习+思考题/原生爬虫实战

14640 学习 · 4477 问题

查看课程