Python嵌套函数中的变量范围

Liang Li

打印[0, 3]第一个代码段

def func():
    a = [0]

    def swim():
        a.append(3)
        # a = [1]+a
        return a
    return swim()

print(func())

第二个代码段引发错误“ UnboundLocalError:赋值之前引用的本地变量'a'”

def func():
    a = [0]

    def swim():
        # a.append(3)
        a = [1]+a
        return a
    return swim()

print(func())

毕竟a可见的/可访问的swim吗?

Liang Li

该链接所述,似乎是一个常见问题原因是,一旦分配了a内部变量swim就会成为局部变量a它遮盖了external a,并且a在function中赋值之前未定义local swim,所以错误会增加。

谢谢大家的回答!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章