递归关闭中的作用域错误

递归关闭中的作用域错误,第1张

递归关闭中的作用域错误

该错误似乎并不能很好地说明根本问题。Mike解释了这些消息,但是没有解释根本原因。

实际的问题是,在python中,您无法为封闭变量赋值。因此在function2中,“
a”是只读的。分配给它时,您将创建一个新变量,正如Mike指出的那样,您在编写之前先进行了读取。

如果要从内部范围分配给外部变量,则必须作弊,如下所示:

def function1():    al = [10]    def function2():        print al[0]        al[0] -= 1        if al[0]>0:function2()    function2()

所以al是不可变的,但其内容不是,您可以在不创建新变量的情况下对其进行更改。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5629753.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存