【发布时间】:2019-12-31 12:40:55
【问题描述】:
我正在尝试制作一个表单应用程序,但我不明白错误:
TypeError: object.__init__() takes exactly one argument (the instance to initialize)
代码在这里;
class Myapp(App):
def build(self):
return Grid1()
class Grid1(GridLayout):
def __init__(self,**kwargs):
super(Grid1,self).__init__(**kwargs)
self.cols=1
self.inside=GridLayout()
self.inside.cols=2
self.inside.add_widget(Label(text="Your name is :"))
self.name=TextInput(multiline=False)
self.inside.add_widget(self.name)
self.inside.add_widget(Label(text="Your Last name is :"))
self.lastname=TextInput(multiline=False)
self.inside.add_widget(self.lastname)
self.inside.add_widget(Label(text="Your email is :"))
self.email=TextInput(multiline=False)
self.inside.add_widget(self.email)
self.submit=Button(text="Submit",font=40)
self.add_widget(self.submit)
if __name__=="__main__":
Myapp().run()
错误
File ".\kivyprima.py", line 38, in <module> Myapp().run()
File "C:\Users\Alex\AppData\Local\Programs\Python\Python37\lib\site-packages\kivy\app.py", line 829, in run root = self.build()
File ".\kivyprima.py", line 10, in build return Grid1()
File ".\kivyprima.py", line 34, in init self.submit=Button(text="Submit",font=40)
File "C:\Users\Alex\AppData\Local\Programs\Python\Python37\lib\site-packages\kivy\uix\behaviors\button.py", line 121, in init
【问题讨论】:
-
return Grid1()这里应该传递关键字参数? -
@OlvinRoght 不,
**kwargs是完全可选的 -
@AlexOnel 提供完整的堆栈跟踪
-
@DeepSpace,是的,我忘了把问号放在问题的末尾。
-
文件 ".\kivyprima.py",第 38 行,在
Myapp().run() 文件 "C:\Users\Alex\AppData\Local\Programs\Python\Python37\ lib\site-packages\kivy\app.py”,第 829 行,运行中 root = self.build() 文件“.\kivyprima.py”,第 10 行,构建中返回 Grid1() 文件“.\kivyprima.py ",第 34 行,在 init self.submit=Button(text="Submit",font=40) 文件 "C:\Users\Alex\AppData\Local\Programs\Python\Python37\lib \site-packages\kivy\uix\behaviors\button.py",第 121 行,在 init 中