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 流程控制实例代码
Sep 25 Python
Python随机生成彩票号码的方法
Mar 05 Python
通过mod_python配置运行在Apache上的Django框架
Jul 22 Python
Python中数字以及算数运算符的相关使用
Oct 12 Python
Python生成器以及应用实例解析
Feb 08 Python
Django跨域请求问题的解决方法示例
Jun 16 Python
Python对象与引用的介绍
Jan 24 Python
Pycharm如何导入python文件及解决报错问题
May 10 Python
基于python实现地址和经纬度转换
May 19 Python
Python -m参数原理及使用方法解析
Aug 21 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
Sep 04 Python
实操Python爬取觅知网素材图片示例
Nov 27 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 5.3.x 的strtotime() 时区设定 警告信息修复
2013/08/05 PHP
ThinkPHP整合百度Ueditor图文教程
2014/10/21 PHP
php准确计算复活节日期的方法
2015/04/18 PHP
一种JavaScript的设计模式
2006/11/22 Javascript
论坛里点击别人帖子下面的回复,回复标题变成“回复 24# 的帖子”
2009/06/14 Javascript
Javascript计算两个marker之间的距离(Google Map V3)
2013/04/26 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
JavaScript中几个重要的属性(this、constructor、prototype)介绍
2013/05/19 Javascript
js获取某元素的class里面的css属性值代码
2014/01/16 Javascript
基于JavaScript短信验证码如何实现
2016/01/24 Javascript
微信小程序 icon组件详细及实例代码
2016/10/25 Javascript
JS实现拖拽的方法分析
2016/12/20 Javascript
简单实现JS计算器功能
2016/12/21 Javascript
微信小程序开发(二)图片上传+服务端接收详解
2017/01/11 Javascript
js遍历json的key和value的实例
2017/01/22 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
vue中keep-alive的用法及问题描述
2018/05/15 Javascript
layui点击导航栏刷新tab页的示例代码
2018/08/14 Javascript
vue.js自定义组件directives的实例代码
2018/11/09 Javascript
浅谈layui 绑定form submit提交表单的注意事项
2019/10/25 Javascript
p5.js绘制创意自画像
2019/11/04 Javascript
javaScript代码飘红报错看不懂?读完这篇文章再试试
2020/08/19 Javascript
vue项目中使用rem,在入口文件添加内容操作
2020/11/11 Javascript
利用 JavaScript 实现并发控制的示例代码
2020/12/31 Javascript
python模块restful使用方法实例
2013/12/10 Python
python实现rest请求api示例
2014/04/22 Python
Python处理时间日期坐标轴过程详解
2019/06/25 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
wxpython布局的实现方法
2019/11/01 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
Python grpc超时机制代码示例
2020/09/14 Python
python 线程的五个状态
2020/09/22 Python
村官工作鉴定评语
2014/01/27 职场文书
公益活动邀请函
2014/02/05 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
Java线程的6种状态与生命周期
2022/05/11 Java/Android