首页 官方动态 > 正文

当前焦点!第77p,关于多继承的“菱形问题”

2023-02-11 22:39:54 来源:杨数Tos

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第77篇文章,第三阶段的课程:Python进阶知识:类与对象(八);简单聊一聊Python中的多继承的问题。

在讲多继承之前,先复习一下单继承的查找顺序,你觉得输出结果会是什么?这里的self是谁?为什么?

请看下图:


(资料图片仅供参考)

一、什么是多继承的“菱形问题”

“菱形”问题指的是一个子类继承了多个父类,最终汇聚到一个非object。

假设有一个子类A,分别继承了父类B和C,而这两个父类同时都继承了祖父类D;那么子类A没有的变量是先去父类B中查找还是去父类C中查找?

因为这种继承示意图很像一个菱形,所以被称为多继承的“菱形问题”。

出现“菱形”继承问题,Python解释器是遵循深度优先原则还是遵循广度优先原则查找呢?

所谓深度优先与广度优先是一种算法思想;

深度优先执行的是“一”字程序,先把同级别的类都访问一遍; 广度优先执行的“1”字程序,先访问第1个父类,没有则访问当前父类的父类(祖父类),没有再延伸下去,直到这个支上没有类;再去访问第2个父类;

以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。

感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!

本文由杨数Tos原创,欢迎关注,带你一起长知识。

推   荐   内   容

零基础学习计算机知识

从零开始,搭建个人量化交易系统

你懂不懂技术?正确的技术打开方式

怎么合理使用技术?用技术赚钱的思考

好用软件与工具分享

技术相关的原创视频

标签:
x 广告
x 广告

Copyright   2015-2022 大众体育网版权所有   备案号:豫ICP备20014643号-14   联系邮箱: 905 14 41 07@qq.com