| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> python中的继承 -> 正文阅读 |
|
[Python知识库]python中的继承 |
参考:Python类中的继承——super(包含super(子类, self).__init__()以及其他父类的方法)_不开组会的天才研究生的博客-CSDN博客_super(self).__init__()? ? ? ??尽量少的重复代码。继承:创建一个层次的类,子类和父类表示从属关系。共享的属性和方法可以放入一个类中。继承一个类,当子类没有自己的构造函数就会调用父类的构造函数,让实例具备父类的属性(__init__中的属性)。当调用方法时,如果子类没有自己的方法,就会调用父类的方法,当父类有自己的方法,会调用自己的方法。优先看所属的类有没有该方法,没有的情况下,往上找父类的同名方法用。当我们给子类写__init__方法,会优先调用子类的构造函数,所以在子类中用super方法,super会返回当前类的父类,写super().__init__()就会调用父类的构造函数,子类也会具有父类的属性。 ?继承: ?????????Python中对象方法第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传递,系统会自动传递。super()在类的继承里面super()非常常用,它解决了子类调用父类方法的一些问题, 父类多次被调用时只执行一次, 优化了执行逻辑。 ①在子类中调用父类的方法: ????????存在继承关系的时候,需要在子类中调用父类的方法,最简单的方法是把对象调用转换为类调用,此时self参数需要显式传递。 语法:class 子类(父类):
????????缺点:如果修改了父类名称,那么在子类中会涉及多处修改,另外,Python是允许多继承的语言,如上所示的方法在多继承时就需要重复写多次,显得累赘。? 为了解决以上问题,所以引入super()机制。 语法: class 子类(父类): ????????????????# super中的self也必须写,但父类方法中不能写self
②两种方法的区别: 表面上看?super(子类, self).父类方法(参数)和父类.父类方法(self, 参数)的结果是一致的,实际上两种方法的内部处理机制不同,当涉及多继承情况时,就会表现出明显的差异来,直接给例子: 方法一:
公共父类A被执行了多次(6次)。 方法二:
????????在super机制里可以保证公共父类仅被执行一次,至于执行的顺序,是按照MRO(Method Resolution Order):方法解析顺序进行的。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/26 2:11:18- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |