大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第77篇文章,第三阶段的课程:Python进阶知识:类与对象(八);简单聊一聊Python中的多继承的问题。
在讲多继承之前,先复习一下单继承的查找顺序,你觉得输出结果会是什么?这里的self是谁?为什么?
请看下图:
(资料图片仅供参考)
一、什么是多继承的“菱形问题”
“菱形”问题指的是一个子类继承了多个父类,最终汇聚到一个非object。
假设有一个子类A,分别继承了父类B和C,而这两个父类同时都继承了祖父类D;那么子类A没有的变量是先去父类B中查找还是去父类C中查找?
因为这种继承示意图很像一个菱形,所以被称为多继承的“菱形问题”。
出现“菱形”继承问题,Python解释器是遵循深度优先原则还是遵循广度优先原则查找呢?
所谓深度优先与广度优先是一种算法思想;
深度优先执行的是“一”字程序,先把同级别的类都访问一遍; 广度优先执行的“1”字程序,先访问第1个父类,没有则访问当前父类的父类(祖父类),没有再延伸下去,直到这个支上没有类;再去访问第2个父类;
以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。
感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!
本文由杨数Tos原创,欢迎关注,带你一起长知识。
推 荐 内 容
零基础学习计算机知识
从零开始,搭建个人量化交易系统
你懂不懂技术?正确的技术打开方式
怎么合理使用技术?用技术赚钱的思考
好用软件与工具分享
技术相关的原创视频
Copyright 2015-2022 大众体育网版权所有 备案号:豫ICP备20014643号-14 联系邮箱: 905 14 41 07@qq.com