找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 2057|回复: 2

[求助] python多重继承失败问题

1

主题

1

帖子

1

积分

贫民

积分
1
飞哥在南京 发表于 2020-8-6 20:31:07 | 显示全部楼层 |阅读模式
恳请大神们能够驻足瞅一眼如下几行代码,能找出问题所在么?谢谢!
class A():
    def __init__(self, name, age):
        print("Eneter A")
        file:///C:\Users\86150\AppData\Roaming\Tencent\QQTempSys\%W@GJ$ACOF(TYDYECOKVDYB.pngself.name = name
        self.age = age
        self.** = 'male'

class B(A):
    def __init__(self, name, age, height):
        print("Enter B")
        # A.__init__(self, name, age)
        super().__init__(name, age)
        self.height = height

class C(A):
    def __init__(self, name, age, color):
        print("Enter C")
        # A.__init__(self, name, age)
        super().__init__(name, age)
        self.color = color

class D(C, B):
    def __init__(self, name, age, height, color, weight):
        super().__init__(name, age, color)
        super(C, self).__init__(name,  age, height)
        self.weight = weight


xm = D('xiaoming', 18, '170cm', 'White', '70kg')


实例化时总是会报错:
ine 19, in __init__
    super().__init__(name, age)
TypeError: __init__() missing 1 required positional argument: 'height'


网上翻阅了很多资料,也尝试修改了多次,最终失败,期待大神的指点,实在不知道问题在哪里?该如何解决?

万分感谢!


回复

使用道具 举报

0

主题

6

帖子

6

积分

贫民

积分
6
阿姨不想洗铁路 发表于 2020-8-10 10:53:07 | 显示全部楼层
# -*- coding: utf-8 -*-


class A:
    def __init__(self, *args, **kwargs):
        print("Enter A")
        self.age = kwargs["age"]
        self.male = 'male'


class B(A):
    def __init__(self, *args, **kwargs):
        print("Enter B")
        super().__init__(*args, **kwargs)
        self.height = kwargs["height"]


class C(A):
    def __init__(self, *args, **kwargs):
        print("Enter C")
        super(C, self).__init__(*args, **kwargs)
        self.color = kwargs["color"]


class D(C, B):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # super(D, self).__init__(name, age, height)
        self.weight = kwargs["weight"]


xm = D(name='xiaoming', age=18, height='170cm', color='White', weight='70kg')

print(xm.weight)
print(xm.color)
print(xm.height)
print(xm.male)
回复 支持 反对

使用道具 举报

0

主题

8

帖子

8

积分

贫民

积分
8
Dr.MarTin 发表于 2020-8-10 20:31:00 | 显示全部楼层
搞清楚MRO就可以了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表