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

Python OOP运行报错:需2个位置参数但传入3个,按老师步骤编写仍出错

问题解决方案

错误原因

报错是因为你调用父类构造方法的语法不符合Python 3的规范:

  • super()在Python 3中不需要手动传入当前子类、实例对象两个参数,系统会自动完成绑定
  • 你原代码中super().__init__(pup, self)的写法相当于给父类__init__传入了2个额外参数,再加上需要传递的name参数,总共传入了3个参数,但父类__init__仅支持self、name两个位置参数,因此触发参数数量不匹配的报错
  • 另外你原代码没有把name参数传递给父类,即便修复参数数量问题也会报错

修正后的完整代码

class Dog:
    def __init__(self,name):
        self.name = name

class pup(Dog):
    def __init__(self, name):
        super().__init__(name)
sammy = pup('sammy')

print(sammy.name)

运行修正后的代码会正常输出sammy。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:36:04