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

在Python编程中,遇到TypeError: object.__init__() takes exactly one argument (the instance to initialize)错误,通常是因为实例化对象时遗漏了参数。博客作者分享了他们在创建类实例时忘记传递空参数()导致的困扰,这个问题耗费了大量时间和精力。解决方案是确保在定义ObjectProperty和StringProperty时提供空参数。修正后的代码使得程序正常运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

就彻底搞定了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值