| |
|
开发:
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——面向对象进阶 |
面向对象三大特征:封装、继承、多态 目录 继承????????如果一个新类继承自一个设计好的类,就直接具备了已有类的特征,就大大降低了工作 难度。已有的类,我们称为“父类或者基类”,新的类,我们称为“子类或者派生类”。 语法格式
???????? 如果在类定义中没有指定父类,则默认父类是 object 类。也就是说,object 是所有类的父 类,里面定义了一些所有类共有的默认实现,比如:__new__()。 定义子类时,必须在其构造函数中调用父类的构造函数。调用格式如下: 父类名.__init__(self, 参数列表) 类成员的继承和重写1. 成员继承:子类继承了父类除构造方法之外的所有成员。 2. 方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类的方法,也称为“重写”
查看类的继承层次结构通过类的方法 mro()或者类的属性__mro__可以输出这个类的继承层次结构。
object 根类object 类是所有类的父类,因此所有的类都有 object 类的属性和方法。 dir()查看对象属性重写__str__()方法object 有一个__str__()方法,用于返回一个对于“对象的描述”
多重继承????????一个子类可以有多个“直接父类”。但是由于这样会被“类的整体层次”搞的异常复杂,所以尽量避免使用。
MRO()????????MRO(Method Resolution Order):方法解析顺序。 我们可以通过 mro()方法获得 “类的层次结构”,方法解析顺序也是按照这个“类的层次结构”寻找的。即如果父类中有相同名字的方法,在子类没有指定父类名时,解释器将 “从左向右”按顺序搜索。
super()获得父类定义super()代表父类的定义,不是父类对象。
多态多态是指同一个方法调用由于对象不同可能会产生不同的行为。
特殊方法和运算符重载常见的特殊方法统计如下: 每个运算符实际上都对应了相应的方法,统计如下:? ? ?特殊属性这些是特殊属性,有特殊用法。 组合“is-a”关系,我们可以使用“继承”。 “has-a”关系,我们可以使用“组合”
?设计模式_工厂模式实现????????工厂模式实现了创建者和调用者的分离,使用专门的工厂类将选择实现类、创建对象进 行统一的管理和控制。
设计模式_单例模式实现????????单例模式只生成一个实例对象,减少了对系统资源的开销。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年11日历 | -2024/11/15 23:30:57- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |