UnboundLocalError:在python中赋值之前引用了局部变量“display”

2024-04-25 23:34:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python的初学者,正试图使用Tkinter模块创建一个基本的GUI计算器。我的代码给了我一个错误UnboundLocalError:local变量“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()

Tags: 代码tkinterdefdisplayfloatflagprint赋值
1条回答
网友
1楼 · 发布于 2024-04-25 23:34:27

问题似乎就在这里:

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

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

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

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

相关问题 更多 >