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聊天程序实例代码分享
Nov 18 Python
python调用新浪微博API项目实践
Jul 28 Python
python排序方法实例分析
Apr 30 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
Python中的并发处理之asyncio包使用的详解
Apr 03 Python
python多线程调用exit无法退出的解决方法
Feb 18 Python
深入了解和应用Python 装饰器 @decorator
Apr 02 Python
pandas删除指定行详解
Apr 04 Python
Python实现数值积分方式
Nov 20 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 Python
总结python多进程multiprocessing的相关知识
Jun 29 Python
python实现学员管理系统(面向对象版)
Jun 05 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
火影忍者:三大瞳力之一的白眼,为什么没有写轮眼那么出色?
2020/03/02 日漫
php并发加锁示例
2016/10/17 PHP
php将html转为图片的实现方法
2017/05/19 PHP
CI框架(CodeIgniter)操作redis的方法详解
2018/01/25 PHP
php设计模式之工厂模式用法经典实例分析
2019/09/20 PHP
解决 firefox 不支持 document.all的方法
2007/03/12 Javascript
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
Google Maps基础及实例解析
2016/08/06 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
NodeJS配置HTTPS服务实例分享
2017/02/19 NodeJs
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
JavaScript中AOP的实现与应用
2019/05/06 Javascript
解决vue打包后刷新页面报错:Unexpected token
2019/08/27 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
2019/11/09 Javascript
ES6学习笔记之字符串、数组、对象、函数新增知识点实例分析
2020/01/22 Javascript
webpack 动态批量加载文件的实现方法
2020/03/19 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
vue2.0 watch里面的 deep和immediate用法说明
2020/10/30 Javascript
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
KMP算法精解及其Python版的代码示例
2016/06/01 Python
详解Django中间件的5种自定义方法
2018/07/26 Python
Python自动化测试笔试面试题精选
2020/03/12 Python
python实时监控logstash日志代码
2020/04/27 Python
电子商务专业实习生自我鉴定
2013/09/24 职场文书
质检部部长职责
2013/12/16 职场文书
法律六进活动方案
2014/03/13 职场文书
分家协议书
2014/04/21 职场文书
2014年信用社工作总结
2014/11/25 职场文书
辞职信格式范文
2015/05/13 职场文书
“5.12”护士节主持词
2015/07/04 职场文书
Python如何使用logging为Flask增加logid
2021/03/30 Python
游戏《东方异文石:爱亚利亚黎明》正式版发布
2022/04/03 其他游戏
python处理json数据文件
2022/04/11 Python