Python多重继承,从一个公共子类初始化

时间:2017-02-14 14:52:39

标签: python

如何让一个公共子类初始化它继承的所有父类?

class Mom(object):
    def __init__(self):
        print("Mom")

class Dad(object):
    def __init__(self):
        print("Dad")

class Child(Mom, Dad):
    def __init__(self):
        super(Child, self).__init__()

c = Child() #only prints Mom

2 个答案:

答案 0 :(得分:5)

他们缺少合作子类化工作所需的super()Mom类中的Dad次调用。

class Mom(object):
    def __init__(self):
        super(Mom, self).__init__()
        print("Mom")

class Dad(object):
    def __init__(self):
        super(Dad, self).__init__()
        print("Dad")

class Child(Dad, Mom):
    def __init__(self):
        super(Child, self).__init__()
c = Child() # Mom, Dad

答案 1 :(得分:3)

您也需要在妈妈super中致电__init__