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

为什么Python子类调用super()构造父类时出现参数数量错误?

Python类继承参数不匹配报错修复方案

错误原因

  • 子类IceCreamStand的__init__方法缩进错误
    你编写的子类代码中,def __init__没有缩进在IceCreamStand类的作用域下,Python不会将其识别为子类的构造方法,子类会默认继承父类Restaurant的构造方法(仅接收restaurant_name、cuisine_type两个入参),实例化时多传了flavor参数就会触发参数数量不匹配错误。
  • super()调用父类构造时多余传入self参数
    Python中使用super()调用父类实例方法时,会自动将当前实例作为第一个self参数传入,手动再传self会导致参数数量异常。
  • 测试代码缺少Restaurant类导入
    测试代码中直接实例化Restaurant但没有导入该类,后续运行也会触发名称未定义错误。

修正后代码

IceCreamStand.py

from Restaurant import Restaurant
class IceCreamStand(Restaurant):
    # 修正:构造方法缩进纳入类作用域
    def __init__(self, restaurant_name, cuisine_type, flavor):
        # 修正:super调用无需手动传self
        super().__init__(restaurant_name, cuisine_type)
        self.flavor = flavor

testInherit.py

from IceCreamStand import IceCreamStand as ic
# 修正:补充导入Restaurant类
from Restaurant import Restaurant

ic1 = ic('b','Indian','Strawberry')
ic2 = ic('a','Italian','Butterscotch')
rest1 = Restaurant('Rooh','All')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:30:00