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 相关文章推荐
pycharm 使用心得(一)安装和首次使用
Jun 05 Python
用Python生成器实现微线程编程的教程
Apr 13 Python
Python极简代码实现杨辉三角示例代码
Nov 15 Python
Numpy数组转置的两种实现方法
Apr 17 Python
Django 中使用流响应处理视频的方法
Jul 20 Python
django进阶之cookie和session的使用示例
Aug 17 Python
Python语言快速上手学习方法
Dec 14 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
运行tensorflow python程序,限制对GPU和CPU的占用操作
Feb 06 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
Apr 14 Python
python super()函数的基本使用
Sep 10 Python
python爬虫之利用selenium模块自动登录CSDN
Apr 22 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数组实例总结与说明
2011/08/23 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
使用PHP连接多种数据库的实现代码(mysql,access,sqlserver,Oracle)
2016/12/21 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
javascript 获取网页参数系统
2008/07/19 Javascript
Jquery+JSon 无刷新分页实现代码
2010/04/01 Javascript
jQuery插件开发全解析
2012/10/10 Javascript
js中一维数组和二位数组中的几个问题示例说明
2014/07/17 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
使用JavaScript脚本无法直接改变Asp.net中Checkbox控件的Enable属性的解决方法
2015/09/16 Javascript
JavaScript实现横向滑出的多级菜单效果
2015/10/09 Javascript
图文详解Heap Sort堆排序算法及JavaScript的代码实现
2016/05/04 Javascript
springMVC结合AjaxForm上传文件
2016/07/12 Javascript
nodeJS模块简单用法示例
2018/04/21 NodeJs
讲解vue-router之什么是编程式路由
2018/05/28 Javascript
微信小程序自定义组件实现tabs选项卡功能
2018/07/14 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
JavaScript代码简化技巧实例解析
2020/09/09 Javascript
[10:34]DOTA2上海特级锦标赛全纪录
2016/03/25 DOTA
使用Python编写简单的画图板程序的示例教程
2015/12/08 Python
jupyter安装小结
2016/03/13 Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
python处理DICOM并计算三维模型体积
2019/02/26 Python
python3实现斐波那契数列(4种方法)
2019/07/15 Python
opencv+python实现均值滤波
2020/02/19 Python
详解如何使用Pytest进行自动化测试
2021/01/14 Python
盛大笔试题
2016/11/05 面试题
公务员职业生涯规划书范文  
2014/01/19 职场文书
公司年底活动方案
2014/08/17 职场文书
信息与计算机科学职业规划范文:成为一艘有方向的船
2014/09/11 职场文书
纪念一二九运动演讲稿
2014/09/16 职场文书
2014第二批党的群众路线教育实践活动对照检查材料思想汇报
2014/09/18 职场文书
追讨欠款律师函
2015/05/27 职场文书
2016大学生暑期三下乡心得体会
2016/01/23 职场文书