Python 按钮对象在tkinter代码中不可调用

Python 按钮对象在tkinter代码中不可调用,python,tkinter,Python,Tkinter,这是我的tkinter代码,我用Python创建了一个计算器,如果单击任何按钮,我都会遇到这个错误 按钮8=按钮(根,text=“8”,padx=40,pady=20,command=lambda: 按钮添加(8))类型错误:“按钮”对象不可调用 请有人帮助我如何解决这个问题?仔细看看,您会注意到您的函数和add button变量具有相同的名称,因此python不知道调用哪个变量,所以只需更改函数名或按钮名即可 from tkinter import * root=Tk() # not re

这是我的tkinter代码,我用Python创建了一个计算器,如果单击任何按钮,我都会遇到这个错误

按钮8=按钮(根,text=“8”,padx=40,pady=20,command=lambda: 按钮添加(8))类型错误:“按钮”对象不可调用


请有人帮助我如何解决这个问题?

仔细看看,您会注意到您的函数和add button变量具有相同的名称,因此python不知道调用哪个变量,所以只需更改函数名或按钮名即可

from tkinter import * 
root=Tk()
#  not required here root.geometry()
root.title("calculator")
entry=Entry(root,width=50,borderwidth=5)
entry.grid(row=0,column=0,columnspan=3,padx=10,pady=10)
def button_add(number): 
    entry.insert(0,number)
def clear(): 
    entry.delete(0,END)
button_1=Button(root,text="1",padx=40,pady=20,command=lambda: button_add(1))
button_2=Button(root,text="2",padx=40,pady=20,command=lambda: button_add(2))
button_3=Button(root,text="3",padx=40,pady=20,command=lambda: button_add(3))
button_4=Button(root,text="4",padx=40,pady=20,command=lambda: button_add(4))
button_5=Button(root,text="5",padx=40,pady=20,command=lambda: button_add(5))
button_6=Button(root,text="6",padx=40,pady=20,command=lambda: button_add(6))
button_7=Button(root,text="7",padx=40,pady=20,command=lambda: button_add(7))
button_8=Button(root,text="8",padx=40,pady=20,command=lambda: button_add(8))
button_9=Button(root,text="9",padx=40,pady=20,command=lambda: button_add(9))
button_0=Button(root,text="0",padx=40,pady=20,command=lambda: button_add(0))
button_add=Button(root,text='+',padx=39,pady=20)
button_equal=Button(root,text='=',padx=95,pady=20)
def clear(): 
    entry.delete(0,END)
button_clear=Button(root,text='clear',padx=141.5,pady=10,command=clear)
# grid being set 
button_1.grid(row=1,column=0)
button_2.grid(row=1,column=1)
button_3.grid(row=1,column=2)
button_4.grid(row=2,column=0)
button_5.grid(row=2,column=1)
button_6.grid(row=2,column=2)
button_7.grid(row=3,column=0)
button_8.grid(row=3,column=1)
button_9.grid(row=3,column=2)
button_add.grid(row=4,column=0)
button_equal.grid(row=4,column=1,columnspan=2)
button_clear.grid(row=5, column=0,columnspan=4)

root.mainloop()
此外,我知道代码仍然不完整,但请记住,每次单击数字按钮时,数字将显示在条目小部件的开始处,以消除此问题,例如:

add_button = Button(root,text='+',padx=39,pady=20)
add_button.grid(row=4,column=0)
我现在告诉你,因为我认为下一步你要做的是避免这种情况:

def button_add(number): 
    entry.insert(END,number) #END will always add the number to the end, rather than 0th postion like before

这完全没有必要,因为您有一个内置的带有tkinter的
END
变量。

@AaditS.Bagga希望标记为正确答案
def button_add(number):
    e = entry.get()
    entry.delete(0,END)
    entry.insert(0,e+str(number))