无法消除的Python未绑定局部错误!
我一直遇到一个“未绑定局部变量”的错误。我不明白为什么会出现这个问题。如果程序运行正常,它应该直接进入主函数中的print_et_list函数的第二个赋值部分,自己循环而不是真正的循环。程序只在hey_user函数中通过sys.exit()退出。
我把整个程序都放上来了,内容不算太长。如果你想看看我在程序中使用的文本文件,请告诉我,不过我觉得这些文件不太可能是问题的来源。
4 个回答
0
你忘了把 score
这个东西传递给 hey_user()
这个函数了。
0
看起来问题可能出在score这个变量上。它是在main()这个函数里定义的局部变量,但你却试图在hey_user()这个函数里使用它。
3
当你在给一个局部变量赋值之前就去读取它的值时,就会出现UnboundLocalError(未绑定的局部变量错误)。那么,为什么score是局部变量而不是全局变量呢?因为它是在函数内部被设置的。我们来看这两个函数:
def foo():
print a
对比一下
def bar():
a = 1
print a
在foo()函数中,a是全局变量,因为它没有在函数内部被设置。而在bar()函数中,a是局部变量。现在再看看这段代码:
def baz():
print a
a = 1
在这里,a是在函数内部被设置的,所以它是局部变量。但是在print语句执行的时候,a还没有被赋值,因此就会出现UnboundLocalError。