python多继承(钻石继承)问题和解决方法简单示例


Posted in Python onOctober 21, 2019

本文实例讲述了python多继承(钻石继承)问题和解决方法。分享给大家供大家参考,具体如下:

在菱形多继承中,如果用父类.__init__()来调用父类的初始化方法,最上层会执行两次,所以遇到这种情况,python中用super.__init__()来解决这个问题。

# -*- coding:utf-8 -*-
#! python3
class Grand_father(object):
  def __init__(self):
    print('爷爷')
class Father_left(Grand_father):
  def __init__(self):
    super(Father_left,self).__init__()
    # Grand_father.__init__(self)
    print('左边爸爸')
class Father_right(Grand_father):
  def __init__(self):
    super(Father_right, self).__init__()
    # Grand_father.__init__(self)
    print('右边爸爸')
class Me(Father_right,Father_left):
  def __init__(self):
    super(Me, self).__init__()
    # Father_left.__init__(self)
    # Father_right.__init__(self)
    print('我')
def main():
  me = Me()
if __name__ == '__main__':
  main()

运行结果:

爷爷
左边爸爸
右边爸爸

如果需要调用左边爸爸,那就执行super(右边爸爸类).

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中用字符串调用函数或方法示例代码
Aug 04 Python
Diango + uwsgi + nginx项目部署的全过程(可外网访问)
Apr 22 Python
详解Python 数据库的Connection、Cursor两大对象
Jun 25 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
Pyqt QImage 与 np array 转换方法
Jun 27 Python
浅谈Pandas Series 和 Numpy array中的相同点
Jun 28 Python
django框架用户权限中的session缓存到redis中的方法
Aug 06 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
django框架单表操作之增删改实例分析
Dec 16 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
OpenCV绘制圆端矩形的示例代码
Aug 30 Python
Python调用腾讯API实现人脸身份证比对功能
Apr 04 Python
python超时重新请求解决方案
Oct 21 #Python
详解python中*号的用法
Oct 21 #Python
python中bytes和str类型的区别
Oct 21 #Python
python中@property和property函数常见使用方法示例
Oct 21 #Python
vim自动补全插件YouCompleteMe(YCM)安装过程解析
Oct 21 #Python
基于python解线性矩阵方程(numpy中的matrix类)
Oct 21 #Python
python打印直角三角形与等腰三角形实例代码
Oct 20 #Python
You might like
PHP文件上传实例详解!!!
2007/01/02 PHP
PHP数组内存耗用太多问题的解决方法
2010/04/05 PHP
PHP转换文件夹下所有文件编码的实现代码
2013/06/06 PHP
PHP file_get_contents设置超时处理方法
2013/09/30 PHP
php实现保存submit内容之后禁止刷新
2014/03/19 PHP
php在数组中查找指定值的方法
2015/03/17 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
excel操作之Add Data to a Spreadsheet Cell
2007/06/12 Javascript
教您去掉ie网页加载进度条的方法
2010/12/09 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
JS去除字符串两端空格的简单实例
2013/12/27 Javascript
使用jquery.qrcode生成彩色二维码实例
2014/08/08 Javascript
深入理解jQuery()方法的构建原理
2016/12/05 Javascript
获取JavaScript异步函数的返回值
2016/12/21 Javascript
利用JS实现文字的聚合动画效果
2017/01/22 Javascript
详解vuex 中的 state 在组件中如何监听
2017/05/23 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
Angularjs实现下拉框联动的示例代码
2017/08/22 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
JS函数本身的作用域实例分析
2020/03/16 Javascript
解决vue-router 切换tab标签关闭时缓存问题
2020/07/22 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
Vant 在vue-cli 4.x中按需加载操作
2020/11/05 Javascript
浅谈Python接口对json串的处理方法
2018/12/19 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
pytorch forward两个参数实例
2020/01/17 Python
Python 给下载文件显示进度条和下载时间的实现
2020/04/02 Python
Python根据指定文件生成XML的方法
2020/06/29 Python
Sneaker Studio罗马尼亚网站:购买运动鞋
2018/11/04 全球购物
事业单位考核材料
2014/05/21 职场文书
龙门石窟导游词
2015/02/02 职场文书
2015年八一建军节演讲稿
2015/03/19 职场文书
会计专业自荐信范文
2019/05/22 职场文书
浅谈如何保证Mysql主从一致
2022/03/13 MySQL
Python实现对齐打印 format函数的用法
2022/04/28 Python