流畅的Python读书笔记-第十二章-继承的优缺点

14次阅读

共计 580 个字符,预计需要花费 2 分钟才能阅读完成。

近期在读“流畅的 Python”这本书,想把自己的读书笔记分享给大家,希望能帮到也对这本书感兴趣但是没时间看的各位。(文章中大部分的话和图片摘录总结自“流畅的 Python”一书, 以及 python 官方网站)

章节概述:分析 Python 的继承
章节结构:

  • 子类化内置类型
  • 多重继承

具体内容:

  • 子类化内置类型

Python 内置类型的子类覆盖的方法不会是隐式调用,所以内置类型不会调用子类覆盖的方法 — 忽略用户自定义覆盖方法
这种问题只限于内置类型内部的方法上

  • 多重继承

多重继承需要处理命名冲突问题 — 重名时,Python 按照某种顺序遍历继承图,从而调用方法 — 方法解析顺序 Method Resolution Order MRO
如果一个类 D 的顺序时 D -> B -> C -> A
self.some_func(): 调用 D 的 some_func
super.some_func(): 按顺序找下一级的 some_func
self.some_func_D_dont_have: 按顺序找到下一级有这个方法的类调用
super.some_func_D_dont_have: 按顺序找到下一级有这个方法的类调用
多重继承应用:collections.abc 包
多重继承实现要点:
1. 把接口继承和实现继承区分开
2. 使用抽象基类显示表示接口
3. 通过混入重用代码
4. 在名称中民古额知名混入
5. 不要子类化多个具体类
6. 为用户提供聚合类

正文完
 0