super

super是一种子类调用父类的方法,在单继承时,super获取的类刚好是父类,但多继承时,super获取的是继承顺序中的下一个类。
学习自博客:
https://www.jianshu.com/p/8ddb595628d1
假设多继承关系如下所示:
Base 父类
A B 子类1
C 子类2

class Base(object):def __init__(self):print('Base')
class A(Base):def __init__(self):print('A')super(A,self).__init__()print('A1')
class B(Base):def __init__(self):print('B')super(B,self).__init__()print('B1')
class C(A,B):def __init__(self):print('C')super(C,self).__init__()print('C1')
C()
输出:
C
A
B
Base
B1
A1
C1
<__main__.C at 0x7f116638fbe0>

另一个例子:
https://www.jb51.net/article/128571.htm

class A(object):def __init__(self):self.n = 10def minus(self, m): #step4,继承自身object,n=15self.n -= m #step7,n=8-2=6class B(A):def __init__(self):self.n = 7def minus(self, m): #step2,继承A,n=15super(B,self).minus(m)self.n -= 2 #step6,n=10-2=8class C(A):def __init__(self):self.n = 12def minus(self, m):super(C,self).minus(m) #step3,继承A,n=15self.n -= 5 #step5,n=15-5=10class D(B, C):def __init__(self):self.n = 15def minus(self, m):super(D,self).minus(m) #step1,继承B,但n=15不会变的self.n -= 2 #step8,n=6-2=4
d=D() #实例化D
d.minus(2) #给实例D传入参数m=2
print(d.n)
输出:
4
总结:
D-B-C-A-C-B-A-D这是继承的过程

注意:实例化类后,进行方法引用时,第一步肯定是执行__init__(),但是如果存在继承,那么父类中的__init__()将不起作用,继承过程中用的初始化数据属都是子类的

本人现在的研究方向是:
图像的语义分割,如果有志同道合的朋友,可以组队学习
haiyangpengai@gmail.com qq:1355365561

python中的super使用方法[探索4]相关推荐

  1. python中的isinstance()使用方法[探索2]

    isinstance 学习的是以下博客: https://blog.csdn.net/HS_blog/article/details/81396664 1.功能 判断python中的设定函数的类型 2 ...

  2. python中的with使用方法[探索5]

    with with是一种上下文管理协议,目的是从流程图中把try,except和finally关键字以及资源分配释放相关代码统统去掉,简化try-excepet-finally的处理流程 with确保 ...

  3. python中superclass是什么_深度解析并实现python中的super(转载,好文)

    大神半个月的成绩,让我看的叹为观止,建议看原帖地址,会让你对Python的描述符有更强的认识. 原文链接:https://blog.csdn.net/zhangjg_blog/article/deta ...

  4. Python中的super()函数

    多路继承的问题 描述: 解决这样的问题Python中可以使用super() super()函数有点: (1)在父类中可以直接的调用未绑定的方法 (2)在确保所有的父类的构造方法都使用了super()函 ...

  5. Python中的super()用法

    Python中的super()方法设计目的是用来解决多重继承时父类的查找问题,所以在单重继承中用不用 super 都没关系:但是,使用 super() 是一个好的习惯.一般我们在子类中需要调用父类的方 ...

  6. python中的super用法详解_【Python】【类】super用法详解

    一.问题的发现与提出 在Python类的方法(method)中,要调用父类的某个方法,在Python 2.2以前,通常的写法如代码段1: 代码段1: class A: def __init__(sel ...

  7. python中的super用法详解_Python中super函数用法实例分析

    本文实例讲述了python中super函数用法.分享给大家供大家参考,具体如下: 这是个高大上的函数,在python装13手册里面介绍过多使用可显得自己是高手 23333. 但其实他还是很重要的. 简 ...

  8. Python中的super()简单用法

    如果在子类中也定义了_init_()函数,那么该如何调用基类的_init_()函数: 方法一.明确指定 : class C(P):def __init__(self):P.__init__(self) ...

  9. python中callable_Python abc.Callable方法代码示例

    本文整理汇总了Python中collections.abc.Callable方法的典型用法代码示例.如果您正苦于以下问题:Python abc.Callable方法的具体用法?Python abc.C ...

最新文章

  1. 十年之后,CV经典教材《计算机视觉:算法与应用》迎来第二版,初稿开放下载...
  2. 程序员最讨厌的9句话,你可有补充?
  3. (初学必看)deep graph library(dgl)库的入门引导
  4. Linux下安装mysql遇到的一些问题及解决办法
  5. python nonetype_【已解决】Python程序错误:TypeError: ‘NoneType’ object is not iterable
  6. 作者:蒋凡(1979-),男,百度外卖研发中心技术委员会主席、主任架构师,中国计算机学会专业会员。...
  7. u盘弹出工具_mac怎么格式化u盘?
  8. PyTorch系列入门到精通——生成对抗网络一瞥
  9. SQLServer之创建Transact-SQL DDL触发器
  10. 卡巴斯基发现医疗IT系统存安全漏洞
  11. 全局钩子,解决命名烦恼!——代码翻译小工具。
  12. Arduino+WZ指令+Onenet
  13. 一份Python面试宝典
  14. linux下获得root权限运行程序
  15. Linux Mint 21编译Android kernel,遇到 multiple definition of `yylloc‘ 的错误解决
  16. Nginx的http_access_module模块
  17. 实战案例|拒绝信息泄露,腾讯云助力电商对抗网络爬虫
  18. 手机闪存速度排行_真机闪存实测:闪存读取速度到底什么鬼差距有多大
  19. Python实现 天天向上的力量(嵩天老师)
  20. 法律部门和法律体系(概念、我国现行的法律部门和法律体系 )、法 律 关 系(概念、构成要素:主体、内容、客体)、法律事实(法律事件、法律行为)

热门文章

  1. Find a way BFS
  2. LeetCode:64. 最小路径和(python、c++)
  3. Python函数之返回多值
  4. PyTorch报错“/.../Loss.cu: ... [59,0,0] Assertion input_val >= zero input_val <= one failed.”
  5. 【干货】Python中几个有趣的函数
  6. Ubuntu下安装支付宝安全控件
  7. ROS学习笔记四:理解ROS节点
  8. C语言内存动态分配与释放
  9. @Column(s) not allowed on a @ManyToOne property: com.strive.entity.Module.parent
  10. vue 组件根元素显示优化