- 子类化内置类型的优缺点
- 多重继承的顺序和方法的解析顺序
注意:内置类型(使用C语言编写)不会调用用户定义的类覆盖方法
不要子类化内置类型,用户自己定义的类应该继承collections模块中的类,例如:UserDict,UserList,UserString,这些类做了特殊的设计,因此易于扩展
继承顺序:类都有一个名为__mro__的属性,它的值是一个元祖,按照方法解析顺序列出各个超类,从当前类一直向上,知道object类
处理多重继承:
- 把接口继承和实现继承区分开来
- 使用抽象基类显式表示接口
- 通过混入重用代码
- 在名称中明确指明混入
- 抽象基类可以作为混入,反过来则不成立
- 不要子类化多个具体类
- 为用户提供聚合类
- 优先使用对象组合,而不是类继承