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 相关文章推荐
使用go和python递归删除.ds store文件的方法
Jan 22 Python
python简单实现基于SSL的IRC bot实例
Jun 15 Python
pandas 实现将重复表格去重,并重新转换为表格的方法
Apr 18 Python
numpy.linspace 生成等差数组的方法
Jul 02 Python
python应用文件读取与登录注册功能
Sep 23 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
使用matplotlib绘制图例标签中带有公式的图
Dec 13 Python
python数据库开发之MongoDB安装及Python3操作MongoDB数据库详细方法与实例
Mar 18 Python
django列表筛选功能的实现代码
Mar 27 Python
python实现扫雷小游戏
Apr 24 Python
python获取linux系统信息的三种方法
Oct 14 Python
C++和python实现阿姆斯特朗数字查找实例代码
Dec 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
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
优化PHP代码技巧的小结
2013/06/02 PHP
php对称加密算法示例
2014/05/07 PHP
Yii2中YiiBase自动加载类、引用文件方法分析(autoload)
2016/07/25 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP登录验证功能示例【用户名、密码、验证码、数据库、已登陆验证、自动登录和注销登录等】
2019/02/25 PHP
让您的菜单不离网站
2006/10/03 Javascript
JavaScript触发器详解
2007/03/10 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
悬浮广告方法日常收集整理
2016/03/18 Javascript
Vue自定义指令详解
2017/07/28 Javascript
从零开始搭建webpack+react开发环境的详细步骤
2018/05/18 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
玩转Koa之koa-router原理解析
2018/12/29 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
Python with的用法
2014/08/22 Python
Django中的“惰性翻译”方法的相关使用
2015/07/27 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
Python中的并发处理之asyncio包使用的详解
2018/04/03 Python
python实现最长公共子序列
2018/05/22 Python
使用python进行波形及频谱绘制的方法
2019/06/17 Python
使用Python轻松完成垃圾分类(基于图像识别)
2019/07/09 Python
你不知道的葡萄干处理法、橙蜜处理法、二氧化碳酵母法
2021/03/17 冲泡冲煮
利用canvas实现图片下载功能来实现浏览器兼容问题
2019/05/31 HTML / CSS
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
什么是命名空间(NameSpace)
2015/11/24 面试题
求职简历中自我评价
2014/01/28 职场文书
优秀经理事迹材料
2014/02/01 职场文书
卫校毕业生个人自我鉴定
2014/04/28 职场文书
小学生一分钟演讲稿
2014/08/26 职场文书
房屋租赁协议书
2014/10/18 职场文书
地球一小时活动总结
2015/02/27 职场文书
vue使用v-model进行跨组件绑定的基本实现方法
2021/04/28 Vue.js
MySQL数据管理操作示例讲解
2022/12/24 MySQL