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 相关文章推荐
在Linux下使用Python的matplotlib绘制数据图的教程
Jun 11 Python
Python类属性的延迟计算
Oct 22 Python
Python实现模拟分割大文件及多线程处理的方法
Oct 10 Python
对python实现二维函数高次拟合的示例详解
Dec 29 Python
对python中词典的values值的修改或新增KEY详解
Jan 20 Python
使用Python将Mysql的查询数据导出到文件的方法
Feb 25 Python
PyCharm搭建Spark开发环境实现第一个pyspark程序
Jun 13 Python
python 计算数据偏差和峰度的方法
Jun 29 Python
Python 中使用 PyMySQL模块操作数据库的方法
Nov 10 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
对python中各个response的使用说明
Mar 28 Python
Python爬虫自动化爬取b站实时弹幕实例方法
Jan 26 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 批量删除数据的方法分析
2009/10/30 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
php使用curl发送json格式数据实例
2013/12/17 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
php无序树实现方法
2015/07/28 PHP
PHP7导出Excel报ERR_EMPTY_RESPONSE解决方法
2019/04/16 PHP
PHP copy函数使用案例代码解析
2020/09/01 PHP
激活 ActiveX 控件
2006/10/09 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
vee-validate vue 2.0自定义表单验证的实例
2018/08/28 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
跟老齐学Python之有点简约的元组
2014/09/24 Python
python 实现红包随机生成算法的简单实例
2017/01/04 Python
基于python socketserver框架全面解析
2017/09/21 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
Django-Model数据库操作(增删改查、连表结构)详解
2019/07/17 Python
利用CSS的Sass预处理器(框架)来制作居中效果
2016/03/10 HTML / CSS
CSS3中Animation动画属性用法详解
2016/07/04 HTML / CSS
NARS化妆品官方商店:美国彩妆品牌
2017/08/26 全球购物
生态学毕业生自荐信
2013/10/27 职场文书
2014年幼儿园元旦活动方案
2014/02/13 职场文书
聘任书模板
2014/03/29 职场文书
最美护士演讲稿
2014/08/27 职场文书
营销总监岗位职责
2014/09/16 职场文书
青年干部培训班学习心得体会
2016/01/06 职场文书
《多彩的民间艺术》教学反思
2016/02/16 职场文书
python中opencv实现图片文本倾斜校正
2021/06/11 Python