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标准库之随机数 (math包、random包)介绍
Nov 25 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
Oct 18 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
Nov 19 Python
Python批量发送post请求的实现代码
May 05 Python
python接口自动化(十六)--参数关联接口后传(详解)
Apr 16 Python
python和mysql交互操作实例详解【基于pymysql库】
Jun 04 Python
处理python中多线程与多进程中的数据共享问题
Jul 28 Python
django框架中间件原理与用法详解
Dec 10 Python
使用python快速实现不同机器间文件夹共享方式
Dec 22 Python
使用python实现多维数据降维操作
Feb 24 Python
Python批量处理csv并保存过程解析
May 16 Python
Python Request类源码实现方法及原理解析
Aug 17 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
社区(php&&mysql)五
2006/10/09 PHP
PHP IN_ARRAY 函数使用注意事项
2010/07/24 PHP
PHP打开和关闭文件操作函数总结
2014/11/18 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
ExtJS 2.0实用简明教程之应用ExtJS
2009/04/29 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
关于 文本框默认值 的操作js代码
2012/01/12 Javascript
Javascript中引用示例介绍
2014/02/21 Javascript
iframe如何动态创建及释放其所占内存
2014/09/03 Javascript
JavaScript中日期函数的相关操作知识
2016/08/03 Javascript
Javascript中函数名.length属性用法分析(对比arguments.length)
2016/09/16 Javascript
JavaScript DOM节点操作实例小结(新建,删除HTML元素)
2017/01/19 Javascript
微信小程序开发技巧汇总
2019/07/15 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
Vue Router中应用中间件的方法
2020/08/06 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
Flask入门之上传文件到服务器的方法示例
2018/07/18 Python
解决Python列表字符不区分大小写的问题
2019/12/19 Python
python通过文本在一个图中画多条线的实例
2020/02/21 Python
python 实现读取csv数据,分类求和 再写进 csv
2020/05/18 Python
如何在 Matplotlib 中更改绘图背景的实现
2020/11/26 Python
Python列表的深复制和浅复制示例详解
2021/02/12 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
给水排水工程专业毕业生推荐信
2013/10/28 职场文书
关工委先进个人事迹材料
2014/05/23 职场文书
群教班子对照检查材料
2014/08/26 职场文书
中学生自我评价2015
2015/03/03 职场文书
永远是春天观后感
2015/06/12 职场文书
外科护士长工作总结
2015/08/12 职场文书
2016年教师节感恩寄语
2015/12/04 职场文书
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB
Python学习之时间包使用教程详解
2022/03/21 Python