Python面向对象-面向对象高级和应用
2025-9-12
| 2025-9-11
Words 431Read Time 2 min
type
status
date
slug
summary
tags
category
icon
password

📝 三大特性—继承补充

1、MRO

1.1、相关概念

💡
MRO 的全称是 Method Resolution Order,即方法解析顺序。
当你在一个对象上调用一个方法(例如 obj.method()) 时,Python 需要沿着继承链向上搜索,以确定应该调用哪个类中的方法。这个搜索的顺序就是 MRO。
对于简单的单继承,这非常直观:从子类到父类,一路向上。

1.2、核心问题

多重继承的歧义 当引入多重继承后,继承图不再是简单的“链”,而可能是一个复杂的“图”,甚至是一个“菱形”。这就产生了歧义:应该以何种顺序搜索父类?
在这个经典的“菱形继承”问题中,搜索顺序可以是:
  1. D -> B -> A -> C -> A(深度优先,但重复访问 A 是糟糕的)
  1. D -> B -> C -> A(广度优先)
  1. 或者其他顺序…

2、C3 算法详解

C3 算法的核心是为一个类生成一个线性化(MRO 列表),这个线性化需要满足以下两个关键约束:
 

🤗 总结归纳

总结文章的内容

📎 参考文章

  • 一些引用
  • 引用文章
 
 
  • 开发
  • Python
  • Python面向对象-面向对象进阶Python数据类型-基础数据类型-Number 数字、bool 布尔、complex 复数
    Loading...