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实现的ID3决策树功能示例
Jan 02 Python
Python绘制正余弦函数图像的方法
Aug 28 Python
python scp 批量同步文件的实现方法
Jan 03 Python
Python设计模式之建造者模式实例详解
Jan 17 Python
Python模块、包(Package)概念与用法分析
May 31 Python
tensorflow的计算图总结
Jan 12 Python
Python图像处理库PIL的ImageDraw模块介绍详解
Feb 26 Python
Python猴子补丁Monkey Patch用法实例解析
Mar 23 Python
python3读取autocad图形文件.py实例
Jun 05 Python
Python如何实现远程方法调用
Aug 07 Python
python 解决函数返回return的问题
Dec 05 Python
python实现马丁策略回测3000只股票的实例代码
Jan 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 生成静态页面的办法与实现代码详细版
2010/02/15 PHP
php 高效率写法 推荐
2010/02/21 PHP
javascript 运算数的求值顺序
2011/08/23 Javascript
JavaScript词法作用域与调用对象深入理解
2012/11/29 Javascript
Js与下拉列表处理问题解决
2014/02/13 Javascript
ajaxFileUpload.js插件支持多文件上传的方法
2014/09/02 Javascript
跟我学习javascript的Date对象
2015/11/19 Javascript
BootStrap实现轮播图效果(收藏)
2016/12/30 Javascript
实例详解display:none与visible:hidden的区别
2017/03/30 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
jQuery判断网页是否已经滚动到浏览器底部的实现方法
2017/10/27 jQuery
windows系统下更新nodejs版本的方案
2017/11/24 NodeJs
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
Vue刷新修改页面中数据的方法
2018/09/16 Javascript
Node.js 多线程完全指南总结
2019/03/27 Javascript
vue--vuex详解
2019/04/15 Javascript
vue使用混入定义全局变量、函数、筛选器的实例代码
2019/07/29 Javascript
让mocha支持ES6模块的方法实现
2020/01/14 Javascript
Javascript类型判断相关例题及解析
2020/08/26 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
python从sqlite读取并显示数据的方法
2015/05/08 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
Python字符串格式化输出代码实例
2019/11/22 Python
Python3.7下安装pyqt5的方法步骤(图文)
2020/05/12 Python
工程现场管理求职自荐信
2013/10/02 职场文书
迟到检讨书400字
2014/01/13 职场文书
土建专业大学生自荐信范文
2014/04/09 职场文书
党员群众路线承诺书
2014/05/20 职场文书
中秋手机店促销方案
2014/06/16 职场文书
读群众路线的心得体会
2014/09/03 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
Nginx配置Https安全认证的实现
2021/05/26 Servers
oracle设置密码复杂度及设置超时退出的功能
2022/06/28 Oracle