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中使用PIL库实现图片高斯模糊实例
Feb 08 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
python实现数值积分的Simpson方法实例分析
Jun 05 Python
Python中的os.path路径模块中的操作方法总结
Jul 07 Python
Python中字符串的常见操作技巧总结
Jul 28 Python
详解python调度框架APScheduler使用
Mar 28 Python
Scrapy框架CrawlSpiders的介绍以及使用详解
Nov 29 Python
Python中利用LSTM模型进行时间序列预测分析的实现
Jul 26 Python
python3中替换python2中cmp函数的实现
Aug 20 Python
Python基础之字符串常见操作经典实例详解
Feb 26 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
Jun 06 Python
对Keras自带Loss Function的深入研究
May 25 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
关于session在PHP5的配置文件中的详细设置参数说明
2011/04/20 PHP
一漂亮的PHP图片验证码实例
2014/03/21 PHP
php计算几分钟前、几小时前、几天前的几个函数、类分享
2014/04/09 PHP
PHP模板引擎Smarty的缓存使用总结
2014/04/24 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
nodejs读取memcache示例分享
2014/01/02 NodeJs
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
jquery插件jquery.beforeafter.js实现左右拖拽分隔条对比图片的方法
2015/08/07 Javascript
AngularJS 路由详解和简单实例
2016/07/28 Javascript
Node.js的特点详解
2017/02/03 Javascript
jstree单选功能的实现方法
2017/06/07 Javascript
jQuery实现可兼容IE6的遮罩功能详解
2017/09/19 jQuery
Vue组件通信的四种方式汇总
2018/02/08 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
Django+vue跨域问题解决的详细步骤
2019/01/20 Javascript
详解JavaScript对数组操作(添加/删除/截取/排序/倒序)
2019/04/28 Javascript
JS通过ajax + 多列布局 + 自动加载实现瀑布流效果
2019/05/30 Javascript
微信小程序与webview交互实现支付功能
2019/06/07 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
django反向解析和正向解析的方式
2018/06/05 Python
python基于socket进行端口转发实现后门隐藏的示例
2019/07/25 Python
python 实现绘制整齐的表格
2019/11/18 Python
pytorch GAN生成对抗网络实例
2020/01/10 Python
python3 中使用urllib问题以及urllib详解
2020/08/03 Python
用python写PDF转换器的实现
2020/10/29 Python
经济实惠的豪华家具:My-Furniture
2019/03/12 全球购物
澳大利亚领先的武术用品和健身器材供应商:SMAI
2019/03/24 全球购物
三陽商会官方网站:Sanyo iStore
2019/05/15 全球购物
教师个人读书活动总结
2014/07/08 职场文书
小学校园文化建设汇报材料
2014/08/19 职场文书
2014年教师学期工作总结
2014/11/08 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
数据库连接池
2021/04/06 MySQL
centos8安装MongoDB的详细过程
2021/10/24 MongoDB
Python如何将list中的string转换为int
2022/07/15 Ruby