Python实现带参数与不带参数的多重继承示例
本文实例讲述了Python实现带参数与不带参数的多重继承。分享给大家供大家参考,具体如下:
1.不带参数的多重继承
#作者:hhh5460
#时间:2017.07.18
classA(object):
defshow_x(self):
print('A')
classB(object):
defshow_y(self):
print('B')
classC(object):
defshow_z(self):
print('C')
classD(A,B,C):
pass
#测试
if__name__=='__main__':
d=D()
d.show_x()#A
d.show_y()#B
d.show_z()#C
2.带参数的多重继承
#作者:hhh5460
#时间:2017.07.18
classA(object):
def__init__(self,x=0):
self._x=x
defshow_x(self):
print(self._x)
defshow_name(self):
print('A')
classB(object):
def__init__(self,y=0):
self._y=y
defshow_y(self):
print(self._y)
defshow_name(self):
print('B')
classC(object):
def__init__(self,z=0):
self._z=z
defshow_z(self):
print(self._z)
defshow_name(self):
print('C')
#注意下面两类D、E,都是继承A、B、C,且A类的优先级最高。但是三条__init__语句的顺序是相反的
classD(A,B,C):
def__init__(self,x=0,y=0,z=0):
C.__init__(self,z)#initC
B.__init__(self,y)#initB
A.__init__(self,x)#initA(A最优先)
classE(A,B,C):
def__init__(self,x=0,y=0,z=0):
super(E,self).__init__(x)#initA(A最优先)#此句可简写成:super().__init__(x)
super(A,self).__init__(y)#initB
super(B,self).__init__(z)#initC
#测试
if__name__=='__main__':
d=D(1,2,3)
d.show_x()#1
d.show_y()#2
d.show_z()#3
d.show_name()#A
e=E(1,2,3)
e.show_x()#1
e.show_y()#2
e.show_z()#3
e.show_name()#A
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《PythonSocket编程技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。