UnboundLocalError:在python中赋值之前引用的局部变量'display'

时间:2017-05-24 20:38:02

标签: python tkinter

我是python的初学者,正在尝试使用Tkinter模块创建一个基本的GUI计算器。我的代码给了我一个错误UnboundLocalError:在赋值之前引用的局部变量'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()

1 个答案:

答案 0 :(得分:1)

问题似乎在这里:

def set():
    display = display + str(a)

由于您未将display声明为全局变量,因此这是一个局部变量。它没有初始化。我不是100%肯定,因为你没有包含完整的错误信息,但这一行肯定会引发致命的错误。

您可以在没有声明的情况下引用全局变量,但不能更改其值。

注意:a函数中的set也存在定义问题:此处没有此类变量。