This question already has answers here:
UnboundLocalError while using += but not append list [duplicate]
(2个答案)
第一个代码片段打印出来。
第二个代码段引发错误“unbundlocalerror:赋值前引用的局部变量'a'”
究竟
(2个答案)
第一个代码片段打印出来。
def func():
a = [0]
def swim():
a.append(3)
# a = [1]+a
return a
return swim()
print(func())
第二个代码段引发错误“unbundlocalerror:赋值前引用的局部变量'a'”
def func():
a = [0]
def swim():
# a.append(3)
a = [1]+a
return a
return swim()
print(func())
究竟
[0, 3]
是否可见/可用于功能a
? 最佳答案
这似乎是this link中所述的常见问题。原因是一旦有一个赋值给a
时,swim
内部的变量a
就成为一个局部变量它隐藏外部a
,并且在函数a
中赋值之前未定义局部swim
,因此错误增加。
谢谢你们的回答!
07-25 21:40