我是一只小飞鸟 发表于 2021-2-27 14:26:19

关于闭包的小问题

如图所示,为什么上面可以,下面不可以,我觉的fun2嵌套函数都有对x进行定义前的操作运算

jackz007 发表于 2021-2-27 14:47:02

      x *= x 有赋值行为,赋值前,必须用 nonlocal x 进行声明
>>> def fun1(x):
        def fun2():
                nonlocal x
                x *= x
                return x
        return fun2

>>> fun1(5)()
25
>>>
页: [1]
查看完整版本: 关于闭包的小问题