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