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实现多行注释的另类方法
Aug 22 Python
python实现汉诺塔方法汇总
Jul 25 Python
Apache如何部署django项目
May 21 Python
python enumerate函数的使用方法总结
Nov 15 Python
python3大文件解压和基本操作
Dec 15 Python
简单了解什么是神经网络
Dec 23 Python
Python3一行代码实现图片文字识别的示例
Jan 15 Python
django富文本编辑器的实现示例
Apr 10 Python
Python实现蒙特卡洛算法小实验过程详解
Jul 12 Python
pandas.DataFrame.drop_duplicates 用法介绍
Jul 06 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
Feb 24 Python
Python 批量下载阴阳师网站壁纸
May 19 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
Symfony2学习笔记之插件格式分析
2016/03/17 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
javascript中对对层的控制
2006/12/29 Javascript
javascript判断office版本示例
2014/04/11 Javascript
NodeJS学习笔记之网络编程
2014/08/03 NodeJs
基于jquery实现导航菜单高亮显示(两种方法)
2015/08/23 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
Yarn的安装与使用详细介绍
2016/10/25 Javascript
浅谈JS中的反柯里化( uncurrying)
2017/08/17 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
详解IWinter 一个路由转控制器的 Nodejs 库
2017/11/15 NodeJs
基于Angularjs-router动态改变Title值的问题
2018/08/30 Javascript
详解在不使用ssr的情况下解决Vue单页面SEO问题
2018/11/08 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
vue+高德地图写地图选址组件的方法
2019/05/18 Javascript
Node.js开发之套接字(socket)编程入门示例
2019/11/05 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
vue抽出组件并传值实例
2020/07/31 Javascript
[04:44]显微镜下的DOTA2第二期——你所没有注意到的细节
2014/06/20 DOTA
Php多进程实现代码
2018/05/07 Python
利用Python如何生成便签图片详解
2018/07/09 Python
Flask框架响应、调度方法和蓝图操作实例分析
2018/07/24 Python
Django框架的中的setting.py文件说明详解
2018/10/15 Python
python使用xlsxwriter实现有向无环图到Excel的转换
2018/12/12 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
pycharm 实现调试窗口恢复
2021/02/05 Python
医学生自荐信
2013/12/03 职场文书
关于环保的建议书400字
2014/03/12 职场文书
项目负责人任命书
2014/06/04 职场文书
运动会口号16字
2014/06/07 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
老人再婚离婚协议书范本
2014/10/27 职场文书
工程部岗位职责范本
2015/04/11 职场文书
XX部保密工作制度范本
2019/08/27 职场文书
APP界面设计技巧和注意事项
2022/04/29 杂记
如何使用python包中的sched事件调度器
2022/04/30 Python