【Python零基础入门篇 · 23】:类的继承(单继承和多继承)、继承重写

简介: 【Python零基础入门篇 · 23】:类的继承(单继承和多继承)、继承重写

类的继承(单继承和多继承)


继承是一种类间关系,描述一个类从另一个类中获取成员信息的类间关系。

继承必定发生在两个类之间,参与继承关系的双方成员是父类子类


语法:class 类名(父类名)


子类可以继承父类的所有属性和方法,就算自己没有,也可以使用父类的。

2c14eedefadf47c19ae8753ecb9699e5.png


继承的传递性

36bddf6845154142a1c942052dcd162a.png


继承的分类


单继承:子类只继承一个父类


多继承:有两个父类的属性和方法,如果两个父类具有同名的方法的时候,调用就近原则


多继承


定义格式:

class 类名 (父类名1,父类名2,...):  
                            pass



e8aacfe60b084eeb923c369d7b0ea3bd.png



查看方法搜索顺序


python中内置属性__mro__,可以查看方法搜索顺序,确定子类调用的方法顺序。

535baab4ad4647019f3c67a40632d622.png


总结


  • 多继承有同名方法时,在搜索方法时,会先按照mro的输出结果,从左往右的顺序查找


  • 如果当前类的方法中找到了,就直接执行,不再搜索


  • 如果找到最后一个类,还没有找到方法,程序报错






继承重写


如果从父类继承的方法不能满足子类的需求,可以在子类中重写父类的方法,这个过程称为方法的覆盖),也称为方法的重写。


覆盖父类的方法


在子类中定义一个跟父类同名的方法,会调用子类重写的方法。


721cfc3de21041d393b30716c289fd39.png


在父类的方法后增加新的内容


第一种:父类.方法名(self)


97c666509afe469f91a748db8238ce8a.png


第二种:super().方法名() (常用)


python中super是一种特殊的类,super()是使用super类创建出来的对象,可以去调用父类中的方法。

3c7bd2107ac647c5bea41d9ec516b47b.png



类的新式写法


class 类名:


class 类名():


class 类名(object): ——>(新式写法)

以上三种写法并无区别,推荐使用新式写法,其中object是python中为所有对象提供的基类,里面提供了一些内置的属性和方法。

相关文章
|
4天前
|
前端开发 Python
Python编程的面向对象(二)—类的多态
Python编程的面向对象(二)—类的多态
12 7
|
3天前
|
IDE Java 开发工具
Python类与面向对象
Python类与面向对象
|
7天前
|
关系型数据库 MySQL Python
mysql之python客户端封装类
mysql之python客户端封装类
|
8天前
|
Python
python 类中的内置方法
python 类中的内置方法
|
6天前
|
Python
Python类中属性和方法区分3-8
Python类中属性和方法区分3-8
|
2月前
|
供应链 数据挖掘 Serverless
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
【python】美妆类商品跨境电商数据分析(源码+课程论文+数据集)【独一无二】
|
2月前
|
Python
12类常用的Python函数
12类常用的Python函数
|
2月前
|
存储 程序员 Python
Python类的定义_类和对象的关系_对象的内存模型
通过类的定义来创建对象,我们可以应用面向对象编程(OOP)的原则,例如封装、继承和多态,这些原则帮助程序员构建可复用的代码和模块化的系统。Python语言支持这样的OOP特性,使其成为强大而灵活的编程语言,适用于各种软件开发项目。
18 1
|
2月前
|
存储 程序员 C++
python类及其方法
python类及其方法
|
2月前
|
C++ Python
python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用
python类方法中使用:修饰符@staticmethod和@classmethod的作用与区别,还有装饰器@property的使用
16 1
下一篇
无影云桌面