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 使用心得(三)Hello world!
Jun 05 Python
Python random模块常用方法
Nov 03 Python
python实现删除文件与目录的方法
Nov 10 Python
python基础知识小结之集合
Nov 25 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
对python中的控制条件、循环和跳出详解
Jun 24 Python
Form表单及django的form表单的补充
Jul 25 Python
python3.8下载及安装步骤详解
Jan 15 Python
Python 解决相对路径问题:"No such file or directory"
Jun 05 Python
python爬虫爬取某网站视频的示例代码
Feb 20 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
Feb 25 Python
Django中的JWT身份验证的实现
May 07 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
Apache, PHP在Windows 9x/NT下的安装与配置 (一)
2006/10/09 PHP
PHP 文件类型判断代码
2009/03/13 PHP
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
使用pthreads实现真正的PHP多线程(需PHP5.3以上版本)
2014/05/05 PHP
PHP中overload与override的区别
2017/02/13 PHP
Yii 2中的load()和save()示例详解
2017/08/03 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
广告显示判断
2006/08/31 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
js获取当前页的URL与window.location.href简单方法
2017/02/13 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
vue2.0 + ele的循环表单及验证字段方法
2018/09/18 Javascript
VUE v-for循环中每个item节点动态绑定不同函数的实例
2018/09/26 Javascript
在Python的列表中利用remove()方法删除元素的教程
2015/05/21 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
Flask项目中实现短信验证码和邮箱验证码功能
2019/12/05 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
Python OpenCV读取中文路径图像的方法
2020/07/02 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
乌克兰网上服装店:Bolf.ua
2018/10/30 全球购物
阿尔卡特(中国)的面试题目
2014/08/20 面试题
面试后的感谢信范文
2014/02/01 职场文书
竞选文艺委员演讲稿
2014/04/28 职场文书
单位承诺书格式
2014/05/21 职场文书
2014国庆节商场促销活动策划方案
2014/09/16 职场文书
2014第二批党员干部对照“四风”找差距检查材料思想汇报
2014/09/18 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
Spring Boot两种全局配置和两种注解的操作方法
2021/06/29 Java/Android
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android