Python TypeError:object.\uuuu init\uuuuuuuu()只接受一个参数(要初始化的实例)
我正在尝试制作表单应用程序,但我不理解错误:Python TypeError:object.\uuuu init\uuuuuuuu()只接受一个参数(要初始化的实例),python,kivy,Python,Kivy,我正在尝试制作表单应用程序,但我不理解错误: 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(
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()
错误
Myapp().run()中第38行的文件“\kivyprima.py”
文件“C:\Users\Alex\AppData\Local\Programs\Python\Python37\lib\site packages\kivy\app.py”,第829行,在run root=self.build()中
文件“\kivyprima.py”,第10行,内建返回Grid1()
文件“\kivyprima.py”,第34行,在init self.submit=按钮中(text=“submit”,font=40)
文件“C:\Users\Alex\AppData\Local\Programs\Python\37\lib\site packages\kivy\uix\behaviors\button.py”,第121行,在init中
好的,所以在
超级(Grid1,self)语句中,错误实际上是而不是。\uuu init\uugs(**kwargs)
语句,它在创建提交按钮时出现。你做到了:
self.submit = Button(text="Submit", font=40)
self.add_widget(self.submit)
但正如所说,字体大小是由字体大小设置的,而不是字体设置的。代码应为:
self.submit = Button(text="Submit", font_size=40)
self.add_widget(self.submit)
这应该很好用
编辑
我只想感谢@chepner指出这一点:
请注意,问题在于字体,而不是用户识别的字体
按钮(或其他任何人)只是简单地向上传递链,直到
最终传递给对象。\uuuu init\uuuuu
(这会引发错误)
简单地忽略意外的参数)
return Grid1()
这里应该传递关键字参数吗?@OlvinRoght否,**kwargs
完全无效optional@AlexOnel提供全部stacktrace@DeepSpace,是的,我忘了在Myapp().run()文件第38行的question.File“\kivyprima.py”末尾打问号“C:\Users\Alex\AppData\Local\Programs\Python37\lib\site packages\kivy\app.py”,第829行,在run root=self.build()文件中“\kivyprima.py”,第10行,在build return Grid1()文件中“\kivyprima.py”,第34行,在init self.submit=按钮(text=“submit”,font=40)文件中”C:\Users\Alex\AppData\Local\Programs\Python37\lib\site packages\kivy\uix\behaviors\button.py”,在init中的第121行注意,问题是font
,按钮(或任何其他人)无法识别,只需沿着链向上传递,直到最终传递给对象(这会引发错误,而不是简单地忽略意外参数)。
self.submit = Button(text="Submit", font_size=40)
self.add_widget(self.submit)