python 钻石继承无参数传递
# __init__() 无参数钻石继承
class Base(object):
def __init__(self):
print ("Base init")
class Medium1(Base):
def __init__(self):
super(Medium1, self).__init__()
print("Medium1 init")
class Medium2(Base):
def __init__(self):
super(Medium2, self).__init__()
print("Medium2 init")
class Leaf(Medium1, Medium2):
def __init__(self):
print(Leaf.mro())
super(Leaf, self).__init__()
print("Leaf init")
leaf = Leaf()
python 钻石继承参数传递
# __init__() 传递参数钻石继承
class A(object):
def __init__(self, name, age):
print('A Begin')
self.name = name
self.age = age
self.sex = "male"
print('A End')
class B(A):
def __init__(self, name, age, height, color):
print('B Begin')
self.color = color
super(B, self).__init__(name, age, height)
print('B End')
class C(A):
def __init__(self, name, age, height):
print('C Begin')
self.height = height
super(C, self).__init__(name, age)
print('C End')
class D(B, C):
def __init__(self, name, age, height, color, weight):
print('D Begin')
self.weight = weight
super(D, self).__init__(name, age, height, color)
print('D End')
def show(self):
print("name",self.name)
print("age",self.age)
print("height",self.height)
print("colro",self.color)
print("weight",self.weight)
print("sex",self.sex)
if __name__ == "__main__":
xm = D(name='xiaoming', age=18, height='170cm',color= 'White',weight= '70kg')
xm.show()
继承关系
__init__
注意继承关系是钻石形状
但是init关系是 “顺序关系”
python 钻石继承参数传递
class A():
def __init__(self, age, **kwargs):
print("Eneter A Begin")
self.age = age
super(A, self).__init__(**kwargs)
self.sex = 'male'
print("Eneter A End")
class B(A):
def __init__(self, name, **kwargs):
print("Enter B Begin")
self.name = name
super(B, self).__init__(**kwargs)
print("Enter B End")
class C(A):
def __init__(self,height, **kwargs):
print("Enter C Begin")
self.height = height
super(C, self).__init__(**kwargs)
print("Enter C End")
class D(C, B):
def __init__(self, color, weight, **kwargs):
print("D info", self)
print(D.mro())
print("Enter D Begin")
self.color = color
self.weight = weight
super(D, self).__init__(**kwargs)
print("Enter D End")
def print_show(self):
print("name ",self.name)
print("age ",self.age)
print("height ",self.height)
print("color ",self.color)
print("weight ",self.weight)
print("sex", self.sex)
'''
需要确定D及D的父类参数
'''
xm = D(name='xiaoming', age=18, height='170cm',color= 'White',weight= '70kg')
xm.print_show()