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在windows和linux下获得本机本地ip地址方法小结
Mar 20 Python
python控制台中实现进度条功能
Nov 10 Python
Python中的错误和异常处理简单操作示例【try-except用法】
Jul 25 Python
Python将多个excel文件合并为一个文件
Jan 03 Python
Python pymongo模块用法示例
Mar 31 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
Aug 23 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
Pytorch .pth权重文件的使用解析
Feb 14 Python
Keras 在fit_generator训练方式中加入图像random_crop操作
Jul 03 Python
Keras loss函数剖析
Jul 06 Python
python实现图片转字符画
Feb 19 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
escape unescape的php下的实现方法
2007/04/27 PHP
CodeIgniter CLI模式简介
2014/06/17 PHP
PHP创建文件,并向文件中写入数据,覆盖,追加的实现代码
2016/03/25 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
PHP函数积累总结
2019/03/19 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
一个js控制的导航菜单实例代码
2013/12/03 Javascript
js 3秒后跳转页面的实现代码
2014/03/10 Javascript
深入理解javascript中的立即执行函数(function(){…})()
2014/06/12 Javascript
总结JavaScript三种数据存储方式之间的区别
2016/05/03 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
关于vue.js发布后路径引用的问题解决
2017/08/15 Javascript
Vue filter介绍及其使用详解
2017/10/21 Javascript
react-router 路由切换动画的实现示例
2018/12/03 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
js图数据结构处理 迪杰斯特拉算法代码实例
2019/09/11 Javascript
微信公众号服务器验证Token步骤图解
2019/12/30 Javascript
[47:38]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python基础教程之类class定义使用方法
2014/02/20 Python
浅谈python的dataframe与series的创建方法
2018/11/12 Python
python版飞机大战代码分享
2018/11/20 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
django 解决扩展自带User表遇到的问题
2020/05/14 Python
python导入库的具体方法
2020/06/18 Python
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
英国著名药妆店:Superdrug
2021/02/13 全球购物
技校毕业生的自我评价
2013/12/27 职场文书
社区党总支书记先进事迹材料
2014/01/24 职场文书
爱心捐款感谢信
2015/01/20 职场文书
车间统计员岗位职责
2015/04/14 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
合作意向书怎么写
2019/06/24 职场文书
PHP策略模式写法
2021/04/01 PHP
jquery插件实现搜索历史
2021/04/24 jQuery