UnboundLocalError:在python中赋值之前引用的局部变量'display'
问题描述:
我是python的初学者,并试图用Tkinter模块创建一个基本的GUI计算器。我的代码给了我一个错误UnboundLocalError:在赋值之前引用的局部变量'display',即使我已经在代码的开头将值赋给了变量。这里是我的代码,任何帮助将被appriciated。UnboundLocalError:在python中赋值之前引用的局部变量'display'
display = ""
flag = 0
def set():
display = display + str(a)
if flag == 0:
calc1 = float(display)
elif flag == 1:
calc2 = float(display[len(str(calc1)) - 1:END])
label.config(text = display)
print (calc1)
print (calc2)
print (display)
def set0():
a=0
set()
# similar functions for values 1-9
set0()
答
的问题似乎是在这里:
def set():
display = display + str(a)
既然你没有申报display
是全球性的,这是一个局部变量。它未初始化。我不是100%确定的,因为你没有包含完整的错误信息,但是这行肯定会引发一个致命的错误。
您可以在没有声明的情况下引用全局变量,但不能更改其值。
注意:set
函数中的a
也有定义问题:这里没有这样的变量。
欢迎来到StackOverflow。请阅读并遵守帮助文档中的发布准则。 [最小,完整,可验证的示例](http://stackoverflow.com/help/mcve)适用于此处。在发布您的MCVE代码并准确描述问题之前,我们无法为您提供有效的帮助。 – Prune