编程语言
首页 > 编程语言> > Python嵌套函数中的变量作用域

Python嵌套函数中的变量作用域

作者:互联网

这个问题已经在这里有了答案:            >            UnboundLocalError while using += but not append list                                     2个
第一个代码段将输出[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())

可见/可访问的功能毕竟可以游泳吗?

解决方法:

似乎这是一个如this link中所述的常见问题.原因是,一旦给a赋值,内部游标中的变量就会变成局部变量.它遮蔽了外部a,而在函数swim中赋值之前未定义局部a,因此错误会增加.

谢谢大家的回答!

标签:python,scope,python-3-x,function,global-variables
来源: https://codeday.me/bug/20191010/1888645.html