我正在学习编程接口,我面临以下问题:
soma() missing 2 required positional arguments: 'a' and 'b'.
如果有人能帮我解决这个问题,我将不胜感激。我在下面提供了我的代码:
from tkinter import*
class calculadora:
def __init__(self,master):
frame=Frame(master)
frame.pack()
self.somar = Button(root,text = 'SOMAR',command = self.soma)
self.somar.pack(side=TOP)
entry1 = Entry(frame)
entry1.pack(side=BOTTOM)
entry2 = Entry(frame)
entry2.pack(side=BOTTOM)
labelR=Label(frame,text='[Aqui]').pack(side=TOP)
def soma(self,a,b):
self.a = int(entry1.get())
self.b = int(entry2.get())
labelR['text'] = self.a+self.b
root = Tk()
root.title("Calculadora")
root.geometry("300x300+200+200")
x =calculadora(root)
root.mainloop()
谢谢你。你知道吗
该行定义每次单击按钮时,它都将调用
self.soma
,这意味着它将调用以对象作为第一个参数的soma
方法。你知道吗但是,
soma
方法需要三个参数:self
、a
和b
。这些暂时不见了。你知道吗编辑:
如果要解决这些问题,可以在命令中包含它们
在这里,您将使用a=True和b=False调用soma方法
或者你也可以去掉soma中的a和b参数,它们目前实际上是无用的。你知道吗
在
Calculadora
类中有一些问题(类名通常大写)在
soma
函数中使用entry1
和entry2
,但它们不是在__init__
方法之外定义的,因此需要将它们更改为self.entry1/2
,以便能够从soma
函数访问它们。对
labelR
也是如此,但也因为Label(frame,text='[Aqui]').pack(side=TOP)
返回None
,labelR
是None
。您需要将标签创建与包装分开。对于
soma
函数,a
和b
是应该删除的无用参数,我删除了中a
和b
前面的self
因为这里不需要。
代码如下:
相关问题 更多 >
编程相关推荐