21|继承和多态:完善面向对象编程的两大特征
海纳
你好,我是海纳。
封装、继承和多态是面向对象编程的三大特征。从第 18 课开始,我们专注于构建类的定义和对象初始化能力,也就是说,只是完成了封装这一特征,这一节课,我们就会进一步实现方法重载和复写,以及类的继承特征。
第 20 课中我们介绍了操作符的重载,Python 除了可以对操作符进行重载之外,还可以对各种特殊方法进行重载。接下来,我们实现方法的重载。
内建方法重载
Python 里有很多内建方法,比如 len 方法、pow 方法等。len 方法可以支持字符串、列表、字典等类型。如果想让 len 方法也支持自建类型,就必须为自定义类型添加 __len__ 方法的实现,例如:
为任意对象增加 len 方法,步骤和增加 add 方法是一样的。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
1. Python 中可以通过重载内建方法来实现自定义类型的特定功能,比如重载 len 方法来支持自定义类型的长度计算。 2. 重载特殊操作符,如函数调用操作符 (),可以让对象像函数一样被调用,通过在类中定义 `__call__` 方法来实现。 3. 重载操作符可以包括一元、二元操作符以及特殊操作符,如函数调用、取下标等操作。 4. 重载操作符的实现可以提高自定义类型的灵活性和可扩展性,使其更符合特定的业务需求。 5. 重载操作符的实现可以让开发者更方便地使用自定义类型,提高代码的可读性和可维护性。 6. C3 算法是用于解决多继承中的菱形继承和检查继承顺序不一致的问题的算法。 7. C3 算法通过合并父类的 MRO 序列来确定子类的 MRO 序列,从而解决多继承中的继承顺序问题。 8. 实现 C3 算法需要在类中定义 super 属性和 _mro 属性,以及相应的方法来计算和合并父类的 MRO 序列。 9. 类的多继承对于方法的查找是有影响的,需要在 getattr 方法中进行相应的处理来保证正确的方法查找顺序。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手写 Python 虚拟机》,新⼈⾸单¥59
《手写 Python 虚拟机》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论