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

OOP新手Python多重继承实例化Child报TypeError,无法继承父类属性如何解决

问题原因
  • Python 不支持类方法重载,你在Child类中定义了两个__init__方法,后定义的会直接覆盖先定义的,最终Child的构造方法仅接受1个位置参数(除self外),传入2个参数(eyeColor、hairColor)自然触发参数数量不匹配的报错。
  • 你没有在Child的构造方法中同时完成两个父类的初始化逻辑,就算参数没问题,也只能继承到其中一个父类的属性。
修复方案

你只需要保留一个Child的构造方法,同时接收两个参数,分别调用两个父类的初始化方法即可,修复后代码如下:

class Mother :
    def __init__(self, eyeColor):
        self._eyeColor = eyeColor

class Father :
    def __init__(self, hairColor):
        self._hairColor = hairColor

class Child(Mother,Father):
    # 同时接收两个属性参数
    def __init__(self, eyeColor, hairColor):
        # 分别初始化两个父类
        Mother.__init__(self, eyeColor)
        Father.__init__(self, hairColor)


Bucky = Child("red","black")
print(Bucky._hairColor) # 输出 black
print(Bucky._eyeColor) # 输出 red
拓展说明

如果后续你想使用super()方法完成多继承初始化,需要父类配合调整参数接收逻辑,避免参数传递冲突,你当前的入门场景直接显式调用两个父类的构造方法可读性更高,更易理解。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:15:07