当前位置: 首页 > news >正文

12.4 菱形继承问题(了解)

12.4 菱形继承问题(了解)

1.经典类和新式类

新式类:在python中会默认继承object类,只要继承了object类的就是新式类,python3中所有类都是新式类。
经典类:没有继承object的就是经典类,只有python2中有经典类。

2.菱形继承问题

当继承为菱形继承的时候经典类和新式类搜索某一个属性的顺序会不一样。

class G:def test(self):print('from G')class E(G):# def test(self):#     print('from E')passclass F(G):# def test(self):#     print('from F')passclass B(E):# def test(self):#     print('from B')passclass C(F):# def test(self):#     print('from C')pass
class D(G):# def test(self):#     print('from D')passclass A(B,C,D):# def test(self):# print('from A')passa=A()
a.test() #搜索路径(广度优先查找),A(B,C,D).test->B(E).test()->E(G).test()#->C(F).test()->F(G).test()#->D(G).test()--------------->G.test()# print(A.__mro__) #打印新式类查找顺序
for i in A.__mro__:print(i)
from G
<class '__main__.A'>
<class '__main__.B'>
<class '__main__.E'>
<class '__main__.C'>
<class '__main__.F'>
<class '__main__.D'>
<class '__main__.G'>
<class 'object'>

总结:

  • 在新式类中当遇到菱形继承时候,会以广度优先查找
  • 在经典类中当遇到菱形继承时候,会以深度优先查找(了解)
  • 普通继承:正常顺序查找。
http://www.zskr.cn/news/266.html

相关文章:

  • 极域电子学生机无法连接教师机
  • Python Flask框架入门_2.API增加授权验证
  • 12.2 类的派生
  • NOIP2025专题-图论2 专题简记
  • 在疼痛中,在喧嚣 失聪与惶惑中
  • 开发手记(二)——图片转换成base64编码
  • Overpass – TryHackMe
  • 浅拷贝和深拷贝两种不同的对象复制
  • NPU前端编译器常见的优化
  • ABC393E
  • ABC393D
  • ZR 25 noip D1T2 题解 | 最短路
  • NOIP2024 退役记
  • LG11311
  • CF1746F
  • C#.NET EFCore.BulkExtensions 扩展详解
  • 2025AI赋能HR新纪元,中国AI HR主流厂商大盘点
  • 私有化部署Dify构建企业AI平台教程
  • 树状数组板子2
  • NOIP 集训日记
  • 记录---让网页像现实世界一样“拿起来,放进去”
  • Ubuntu22.04安装Docker过程记录
  • MySQL多表查询
  • 软件工程导论第一次作业
  • 闲话 25.9.8
  • The 2025 ICPC Asia East Continent Online Contest (I)
  • Ubuntu22.04下Docker的安装Docker镜像源问题解决方法
  • 【项目实战】基于Hi3861的鸿蒙智能小车(循迹、超声波避障、远程控制、语音控制、4G定位)有教程代码
  • 【项目实战】基于Hi3861的鸿蒙智能小车(循迹、超声波避障、远程控制、语音控制、4G定位)有教程代码
  • 新手小白如何快速入门PostgreSQL