Python实现带参数与不带参数的多重继承示例


Posted in Python onJanuary 30, 2018

本文实例讲述了Python实现带参数与不带参数的多重继承。分享给大家供大家参考,具体如下:

1. 不带参数的多重继承

# 作者:hhh5460
# 时间:2017.07.18
class A(object):
  def show_x(self):
    print('A')
class B(object):
  def show_y(self):
    print('B')
class C(object):
  def show_z(self):
    print('C')
class D(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
class A(object):
  def __init__(self, x=0):
    self._x = x
  def show_x(self):
    print(self._x)
  def show_name(self):
    print('A')
class B(object):
  def __init__(self, y=0):
    self._y = y
  def show_y(self):
    print(self._y)
  def show_name(self):
    print('B')
class C(object):
  def __init__(self, z=0):
    self._z = z
  def show_z(self):
    print(self._z)
  def show_name(self):
    print('C')
# 注意下面两类D、E,都是继承A、B、C,且A类的优先级最高。但是三条__init__语句的顺序是相反的
class D(A, B, C):
  def __init__(self, x=0, y=0, z=0):
    C.__init__(self, z) # init C
    B.__init__(self, y) # init B
    A.__init__(self, x) # init A (A最优先)
class E(A, B, C):
  def __init__(self, x=0, y=0, z=0):
    super(E, self).__init__(x) # init A (A最优先) # 此句可简写成:super().__init__(x)
    super(A, self).__init__(y) # init B
    super(B, self).__init__(z) # init C
# 测试
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中的函数编程
Apr 13 Python
python opencv旋转图像(保持图像不被裁减)
Jul 26 Python
Python socket实现的文件下载器功能示例
Nov 15 Python
python将字符串转变成dict格式的实现
Nov 18 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
Python代码生成视频的缩略图的实例讲解
Dec 22 Python
nginx搭建基于python的web环境的实现步骤
Jan 03 Python
Pytorch 计算误判率,计算准确率,计算召回率的例子
Jan 18 Python
python异常处理try except过程解析
Feb 03 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
Python3.9又更新了:dict内置新功能
Feb 28 Python
浅谈怎么给Python添加类型标注
Jun 08 Python
Python实现的随机森林算法与简单总结
Jan 30 #Python
Python决策树和随机森林算法实例详解
Jan 30 #Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 #Python
python使用Tkinter实现在线音乐播放器
Jan 30 #Python
Python字典及字典基本操作方法详解
Jan 30 #Python
Python操作MySQL数据库的三种方法总结
Jan 30 #Python
python3.5 tkinter实现页面跳转
Jan 30 #Python
You might like
set_include_path在win和linux下的区别
2008/01/10 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
将php数组输出html表格的方法
2014/02/24 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
2014/11/28 PHP
PHP中TP5 上传文件的实例详解
2017/07/31 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
2019/01/17 PHP
表单元素事件 (Form Element Events)
2009/07/17 Javascript
javascript下对于事件、事件流、事件触发的顺序随便说说
2010/07/17 Javascript
javascript中"/"运算符常见错误
2010/10/13 Javascript
jQuery中将函数赋值给变量的调用方法
2012/03/23 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
JQuery给select添加/删除节点的实现代码
2016/04/26 Javascript
IScroll5 中文API参数说明和调用方法
2016/05/21 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
Bootstrap 模态框(Modal)带参数传值实例
2017/08/20 Javascript
elementUI select组件使用及注意事项详解
2019/05/29 Javascript
vue style width a href动态拼接问题的解决
2020/08/07 Javascript
python多线程threading.Lock锁用法实例
2014/11/01 Python
python中abs&map&reduce简介
2018/02/20 Python
详谈Numpy中数组重塑、合并与拆分方法
2018/04/17 Python
python 读取DICOM头文件的实例
2018/05/07 Python
python deque模块简单使用代码实例
2020/03/12 Python
python实现计算器简易版
2020/12/17 Python
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
JD Sports比利时官网:英国领先的运动鞋和运动服饰零售商
2018/10/10 全球购物
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
单位实习证明怎么写
2014/01/17 职场文书
体现团队精神的口号
2014/06/06 职场文书
电大奖学金获奖感言
2014/08/14 职场文书
同学聚会通知短信
2015/04/20 职场文书
民事答辩状范本
2015/05/21 职场文书
webpack的移动端适配方案小结
2021/07/25 Javascript