从宏观视角看Python面向对象编程
1. 继承搜索机制
在Python的面向对象编程(OOP)中,继承搜索是自下而上进行的。这意味着子类可以通过在类树中重新定义超类的名称来覆盖超类中定义的行为。
1.1 继承搜索示例
假设我们构建了一个类树,当执行 I2.w 代码时,由于这是一个 object.attribute 表达式,Python会触发对类树的搜索。具体搜索顺序为: I2, C1, C2, C3 ,并在找到第一个附加的 w 时停止搜索(如果根本找不到 w ,则会引发错误)。在这个例子中,直到搜索到 C3 才会找到 w ,因为只有在该对象中存在 w 。也就是说, I2.w 通过自动搜索解析为 C3.w ,从OOP术语来讲, I2 从 C3 继承了属性 w 。
1.2 不同属性的搜索路径
不同属性的引用在类树中会遵循不同的搜索路径,具体如下:
- I1.x 和 I2.x 都会在 C1 中找到 x 并停止搜索,因为 C1 在类树中的位置比 C2 低。
-
订阅专栏 解锁全文
613



被折叠的 条评论
为什么被折叠?



