| |
|
开发:
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中的mro方法搜索顺序、新式类和旧式(经典)类)】 -> 正文阅读 |
|
[Python知识库]Python面向对象特性——多继承【Python中的mro方法搜索顺序、新式类和旧式(经典)类)】 |
上一篇文章讲述了多继承的概念、语法、代码演练、使用注意事项,有兴趣的可以看下,这篇文章是基于上篇文章的扩展科普,简单知道一下就好。 一、Python中的MRO —— 方法搜索顺序【科普】所谓方法搜索顺序,就是让某个对象调用某个方法时,python的解释器是按照什么样的顺序在创建这个对象的类,以及父类之间搜索方法的。
确定C类对象调用方法的顺序:上篇文章中代码不变,在后面输出:
具体代码:
执行结果: ? 结果过程说明: 在控制台输出了一个元组。当让C类创建的对象方法时,Python解释器会首先在C类中查找有没有这个方法,如果有就会直接执行,而不会向后搜索。如果没有找到这个方法,就会按照元组的顺序从左向右查找第二个类中是否有这个方法,如果在B类中找到就会直接执行也不会向后搜索。如果没有找到就会按照从左向右的顺序继续向下寻找,在第三个类中A类中继续查找有没有提供这个方法,如果找到就执行,如果没有找到继续向后寻找下一个类object类,如果还没找到程序就会报错。(在python3中object是所有类的基类,也就是只要定义一个类,这个类的最终基类都是object类,简单来讲object是python中所有类的祖宗类) 总结:
二、新式类和旧式(经典)类【科普】object是python为所有对象提供的基类,提供一些内置的属性和方法,可以使用dir函数来查看。 新式类:
经典类:
新式类和经典类在便宜thin2.x和Python3.x之间的区别:
代码体验,如图:
? ? 2.基于Python3.x ?
注意:为了保证编写的代码能够同时在python2.x和python3.x运行,今后在定义类时,如果没有父类,建议统一继承自object
|
|
|
上一篇文章 查看所有文章 |
|
开发:
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 14:15:07- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |