关于tkinter:UnboundLocalError:在python中赋值之前引用的局部变量’display’

UnboundLocalError: local variable 'display' referenced before assignment in python

本问题已经有最佳答案,请猛点这里访问。

我是Python的初学者,尝试使用tkinter模块创建一个基本的GUI计算器。我的代码给了我一个错误unboundlocalerror:local变量'display'在赋值之前被引用,即使我在代码开头为变量赋值。这是我的代码,任何帮助都将被重视。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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
2
def set():
    display = display + str(a)

由于您没有将display声明为全局变量,所以这是一个局部变量。它未初始化。我不能百分之百地确定,因为您没有包含完整的错误消息,但是这一行肯定会引发致命的错误。

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

注意:在set函数中,a的定义也有问题:这里没有这样的变量。