我有一个简单的例子:
def func1():
local_var = None
def func(args):
print args,
print "local_var:", local_var
local_var = "local"
func("first")
func("second")
func1()
我希望输出是:
第一个 local_var:无 第二个 local_var:本地
但是,我的实际输出是:
第一个本地变量: 回溯(最近一次通话最后): 文件“test.py”,第 13 行,在 函数1() func1 中的文件“test.py”,第 10 行 函数(“第一个”) 文件“test.py”,第 6 行,在 func 中 打印“local_var:”,local_var UnboundLocalError:分配前引用的局部变量“local_var”
我对 python 范围规则的理解表明这应该按预期工作。我有其他代码可以按预期工作,但是将一个不工作的代码片段减少到上面的微不足道的情况也不起作用。所以我很难过。