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

就彻底搞定了!

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值