TypeError: object.__init__() takes exactly one argument (the instance to initialize)

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()

就彻底搞定了!

你可能感兴趣的:(TypeError: object.__init__() takes exactly one argument (the instance to initialize))