先来看一段代码:

class First(object):def __init__(self):print ("first")class Second(object):def __init__(self):print ("second")class Third(object):def __init__(self):print ("third")class Forth(object):def __init__(self):print ("forth")class Five(First, Second, Third, Forth):def __init__(self):print ("that's it")a = Five()

这段代码的输出结果是:

that's it

也就是说,在class Five中的def__init__(self)override了父类(classes: First, Second, Third, Forth)的def__init__(self)

class First(object):def __init__(self):print ("first")class Second(object):def __init__(self):print ("second")class Third(object):def __init__(self):print ("third")class Forth(object):def __init__(self):print ("forth")class Five(First, Second, Third, Forth):def __init__(self):super().__init()__print ("that's it")a = Five()

输出结果是:

first
that's it

也就是说,class Five先继承了父类 Firstdef __init__(self),然后执行自己重新定义的def __init__(self)

如果在所有父类中也使用super().__init__,事情变得有趣:

class First(object):def __init__(self):super().__init__()print ("first")class Second(object):def __init__(self):super().__init__()print ("second")class Third(object):def __init__(self):super().__init__()print ("third")class Forth(object):def __init__(self):super().__init__()print ("forth")class Five(First, Second, Third, Forth):def __init__(self):super().__init__()print ("that's it")a = Five()

这段代码的输出结果是:

forth
third
second
first
that's it

也就是说,如果在父类中都加入super()class Five执行父类中def __init__()的顺序是class Forth -> class Third -> class Second -> class First

也就是说,class Five在继承了class First后,不会马上停止并执行class FIrst中的def __init__(),而是继续往下搜寻,直到最后。

转载于:https://www.cnblogs.com/yaos/p/7071190.html

理解Python中的继承规则和继承顺序相关推荐

  1. python中的继承冲突及继承顺序

    python中的继承冲突及继承顺序 简单的菱形继承 设计类如下 #mermaid-svg-IYOh6g5InwMB9svy {font-family:"trebuchet ms", ...

  2. python中继承是什么意思_如何理解Python中的继承?python入门

    如何理解Python中的继承?如今,python编程语言深受企业和个人的喜爱.python开发工程师是近年来互联网行业非常热门的职业岗位之一.学习python的人除了零基础的,还有一部分是在职运维.在 ...

  3. python中类的继承规则

    python中类的继承规则 在学习python中的继承规则之前,首先要知道python中类的划分. 只要继承object类的就是新式类,不继承object类的都是经典类. 在python3中,所有的类 ...

  4. python中的继承有什么特点_python类的继承是什么?类的继承有什么样的规则?

    在这篇文章之中我们来了解一下python类的继承,对于刚刚接触到python这一编程语言的朋友来说,对于python类的继承的了解应该比较少,不过没关系,在接下来的文章之中我们就来了解一下python ...

  5. Python中的继承和多态

    本文以生活中的基础现象为切入点,主要介绍了Python基础中继承和多态,包括单继承.多继承的语法.多态常见的 "鸭子类型". 以及如何重写父类的方法都做了详细的讲解. 一.继承的介 ...

  6. 全面理解python中self的用法

    self代表类的实例,而非类. class Test:def prt(self):print(self)print(self.__class__)t = Test() t.prt() 执行结果如下 & ...

  7. Python中菱形继承的MRO顺序及property属性

    Python中菱形继承的MRO顺序及property属性 文章目录 Python中菱形继承的MRO顺序及property属性 一.Python中菱形继承的MRO顺序 1. 单独调用父类的方法 2. 多 ...

  8. python赋值语句对错_深入理解Python中变量赋值的问题

    前言 在Python中变量名规则与其他大多数高级语言一样,都是受C语言影响的,另外变量名是大小写敏感的. Python是动态类型语言,也就是说不需要预先声明变量类型,变量的类型和值在赋值那一刻被初始化 ...

  9. 深入理解Python中的全局解释锁GIL

    深入理解Python中的全局解释锁GIL 转自:https://zhuanlan.zhihu.com/p/75780308 注:本文为蜗牛学院资深讲师卿淳俊老师原创,首发自公众号https://mp. ...

最新文章

  1. 数据库中的select 1,select count(1),order by 1
  2. 现阶段的微信小程序能实现直播功能么?
  3. 中国首个火星探测器天问一号发射成功!
  4. linux wget 下载文件 报错 To connect to xxxx, use ‘--no-check-certificate’ 解决方法
  5. linux c 编译错误 conflicting types for 的解决办法
  6. appium安装完成后运行和执行python脚本的错误合集
  7. 这个五月,我拿到了腾讯暑期offer
  8. 40张图彻底揭秘:输入网址究竟发生了什么?
  9. 殷墟 太行山 红旗渠
  10. matlab语言 列车平稳性指标,铁道车辆平稳性分析报告.docx
  11. 模拟驾驶能力输出,赋能客户提升稳定性信心
  12. 厦门one_理想ONE真是“500万内最好的车”?
  13. Qt 自定义界面(实现无边框、可移动)
  14. 十大WordPress安全设置技巧
  15. 同一页面实现多个Tab选项卡功能
  16. 怎么用计算机撩人,如何用你的专业“撩人”?
  17. ppt科研绘图之通过vba一键导出pdf
  18. python英文文本情感分析_舆情信息浩如烟海?看看如何用Python进行英文文本的情感分析...
  19. Win10系统更新后开机密码错误怎么解决?
  20. MySQL高可用之DRBD

热门文章

  1. python怎么让py里面逐行运行_[python]开发环境bug(求助)
  2. ctfshow-萌新-web9( 利用命令执行漏洞读取网站敏感文件)
  3. SQLSERVER日期时间汇总
  4. ppt扇形图怎么显示数据_PPT图表除了显示数据变化,还可以干嘛?
  5. SQL SERVER 大小写敏感设置及排序规则详解
  6. chromedriver 版本
  7. [Web 前端] CSS篇之 4. position 和 display 的取值和各自的意思和用法
  8. printf参数的问题
  9. MIT自适应律MRAC的理解和MATLAB实现
  10. python创建自定义函数is_number()来判断一个字符是否是数字