You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Database类__init__参数缺失报错的原因及解决方法

问题原因与解决方案

为什么会出现这个报错?

这是Python类实例化时的典型误区:你直接调用了__init__构造方法,而非通过类名创建实例。

__init__的第一个参数self是Python自动传入的——当你用类名(参数)的方式创建实例时,Python会把刚生成的对象本身作为self传递给__init__。但你直接写database.__init__(...)时,Python不会自动帮你注入self,这就导致原本需要4个参数(self+你传入的3个参数)的方法,只收到了3个参数,自然会提示"缺少一个参数"。

如何修改?

只需要把app.py里的调用代码改成类实例化的标准写法就行:

你当前的错误代码:

dataset = database.__init__(configs['dict'], 'table-name','third-var')

修改后的正确代码:

dataset = database(configs['dict'], 'table-name','third-var')

这样Python会自动处理self的传递,__init__就能接收到所有需要的参数,报错也就消失了。

额外提醒

顺便说一句,__init__本身没有返回值(默认返回None),你之前的写法即使不报错,dataset也会是None。用正确的实例化方式,dataset才会是database类的一个实例对象,后续可以正常访问它的属性和方法。

内容的提问来源于stack exchange,提问作者iraza-n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:18:10