TypeError: object.__init__() takes exactly one argument (the instance to initialize)
翻译:类型错误:object.__init__() 至少需要一个参数(实例初始化)
我遇到了这个错误,废了整整一天的时间,耗时远远超过了一个开颅血肿清除手术时间,精力也消耗了不少,幸运的是中途可以休息,不像手术室那样需要忍耐。错误的原因很简单,只是我们在赋予一些新的实例的时候忘了给参数,即便参数是空的,也要一个()。我当时的错误代码如下:
import kivy
kivy.require('2.0.0')
from kivy.app import App
from kivy.uix.floatlayout import FloatLayout
from kivy.properties import ObjectProperty, StringProperty
class controller(FloatLayout):
label_wid = ObjectProperty
info = StringProperty
def do_action(self):
self.label_wid.text='button pressed'
self.info = 'bye'
class yo24App(App):
def build(self):
return controller(info='helloworld')
if __name__=="__main__":
yo24App().run()
错误就在于,kv中赋予属性的话,也要参数哦。因为这也是一个class
修改:
label_wid = ObjectProperty
info = StringProperty
为:
label_wid = ObjectProperty()
info = StringProperty()
就彻底搞定了!