Python AttributeError:“str”对象没有属性“set”(Tkinter)

Python AttributeError:“str”对象没有属性“set”(Tkinter),python,python-3.x,tkinter,set,tkinter-label,Python,Python 3.x,Tkinter,Set,Tkinter Label,我正在用tkinter做计算器,按钮有问题。当我单击时,它显示如下错误: Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\ADMIN\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1885, in __call__ return self.func(*args)

我正在用tkinter做计算器,按钮有问题。当我单击时,它显示如下错误:

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\ADMIN\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1885, in __call__
    return self.func(*args)
  File "C:\Users\ADMIN\Desktop\SSCalc\calc.py", line 19, in <lambda>
    btn1 = tk.Button(root,text='1',height=0,width=5,font=fontBtn,command=lambda:pressBtn(1))
  File "C:\Users\ADMIN\Desktop\SSCalc\calc.py", line 12, in pressBtn
    mathValue.set(mathValue)
AttributeError: 'str' object has no attribute 'set'

有人能帮我找到一个方法来修复这个错误吗?谢谢

代码中有两个问题:

执行mathValue+=strnumber创建名为mathValue的局部变量,该变量是字符串。 该行顶部的全局mathValue将其转换为全局变量。 因此.get对字符串对象不起作用

以下代码起作用:

将tkinter作为tk导入 从tkinter导入字体作为tkFont 从tkinter导入StringVar、条目、按钮 从tkinter.ttk导入* 输入数学 root=tk.tk root.titleSimple计算器 mathValue= def PRESSBTN编号: mathValue.setmathValue.get+strnumber def主计算: 全局数学值 mathValue=StringVar fontBtn=tkFont.Fontfamily=Helvetica,尺寸=15,重量='bold' inputMath=Labelroot,textvariable=mathValue,relief='sunken' inputMath.configtext=输入您的计算…,宽度=50 inputMath.gridcolumnspan=4,ipadx=100,ipady=15 btn1=tk.Buttonroot,text='1',height=0,width=5,font=fontBtn,command=lambda:pressBtn1 btn1.gridrow=1,column=0 btn2=tk.Buttonroot,text='2',高度=0,宽度=5,字体=fontBtn,命令=lambda:pressBtn2 btn2.gridrow=1,column=1 主计算器 root.mainloop 我已对此代码进行了2处更正:

我已将全局mathValue行置于mainCalc中。这使StringVar成为一个全局变量。 我用mathValue.setmathValue.get+strnumber替换了pressBtn中的两行。这里,mathValue.get获取mathValue中以前存储的值(如果有),否则,如果不存在值,则重新运行,并且+strnumber追加新值。最后,mathValue.set设置新值。
import tkinter as tk
from tkinter import font as tkFont
from tkinter import StringVar, Entry, Button
from tkinter.ttk import *
import math
root = tk.Tk()
root.title("Simple Calculator")
mathValue = ""
def pressBtn(number):
    global mathValue
    mathValue+=str(number)
    mathValue.set(mathValue)
def mainCalc():
    mathValue = StringVar()
    fontBtn = tkFont.Font(family="Helvetica",size=15,weight='bold')
    inputMath = Label(root,textvariable=mathValue,relief='sunken')
    inputMath.config(text="Enter Your Calculation...", width=50)
    inputMath.grid(columnspan=4,ipadx=100,ipady=15) 
    btn1 = tk.Button(root,text='1',height=0,width=5,font=fontBtn,command=lambda:pressBtn(1))
    btn1.grid(row=1,column=0)
    btn2 = tk.Button(root,text='2',height=0,width=5,font=fontBtn,command=lambda:pressBtn(2))
    btn2.grid(row=1,column=1)
mainCalc()
root.mainloop()