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

Python使用super()时出现__init__()缺少1个必需位置参数错误如何解决

报错原因定位

该报错是类的构造方法__init__调用时缺少必填位置参数导致的,练习super()方法时该问题通常由以下几种操作错误引发:

  • 父类__init__定义了必填位置参数,使用super().__init__()调用父类构造方法时漏传对应参数
    示例错误写法:
class Base:
    # 父类构造要求传入name参数
    def __init__(self, name):
        self.name = name

class Sub(Base):
    def __init__(self, age):
        super().__init__() # 此处未传入父类要求的name参数,触发报错
        self.age = age
  • 存在多层继承关系时,中间子类调用super().__init__()没有透传上层父类需要的参数,导致顶层父类收不到必填参数
  • 实例化子类对象时,没有传入子类__init__要求的所有必填位置参数
修复步骤
  1. 先检查所有父类、子类的__init__方法参数列表,梳理清楚每个构造方法的必填位置参数
  2. 子类调用super().__init__()时,按父类要求的参数顺序传入所有必填参数,上述错误示例修复后写法如下:
class Sub(Base):
    def __init__(self, name, age):
        super().__init__(name) # 传入父类要求的name参数
        self.age = age
  1. 多层继承场景下,所有中间子类调用super().__init__()时都要完整透传上层父类需要的参数,避免参数断传
  2. 实例化子类对象时,按子类__init__的参数要求传入所有必填参数

内容的提问来源于stack exchange,提问作者ACE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 04:15:03