迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

Python MRO(方法解析顺序)

作者:迹忆客 最近更新:2023/06/27 浏览次数:

多重继承意味着单个子类可以继承多个类,并且子类将被授权访问属性和函数,除非它们不是该特定类的私有属性和函数。 MRO 技术用于搜索正在执行的类的顺序。

在这篇文章中,我们将学习Python MRO(方法解析顺序)。


Python 中的 MRO(方法解析顺序)

MRO 是 Python 中在类层次结构中查找方法的顺序。 它主要用于查找子类的父类中的方法和属性。

首先,在继承时按照指定的顺序在子类中搜索属性或方法。 此顺序也称为类的线性化,在检查顺序时应用一组规则。

从其他类继承时,编译器需要一种正确的方法来解析通过类的实例调用的方法。 当我们在多个基类的父类中具有相同的功能时,它在多重继承中发挥着重要作用。

代码示例:

class A(object):
    def dothis(self):
        print('This is A class')

# Class B is inheriting Class A
class B(A):
    def dothis(self):
        print('This is B class')

# Class C is inheriting Class B
class C(B):
    def dothis(self):
        print('This is C class')

# Class D is inheriting Class C and B
class D(C, B):
    def dothis(self):
        print('This is D class')

# creating the object of Class D
d_obj = D()

# calling funtion dothis()
d_obj.dothis()
print(D.mro())

输出:

This is D class
[<class '__main__.D'>, <class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <class 'object'>]

在上面的示例中,函数 dothis() 在每个类中都可用。 当您使用类 D 的对象 d_obj 调用它时,它首先在当前类中检查它。

如果存在,它将返回该函数。 否则,它将根据 mro() 函数的规则继续查找父类。

此外,要了解类的顺序,您可以使用当前类名调用 mro() 函数,如上面的示例 D.mro() 所示。 目前的顺序是 Class D -> Class C -> Class B -> Class A ,我们可以在继承时进行相应的更改。

上一篇:Python 获取主目录

下一篇:没有了

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Python 获取主目录

发布时间:2023/06/27 浏览次数:146 分类:Python

本篇文章将介绍使用 Python 中的 os.path.expanduser 或 pathlib 库获取主目录的路径。使用 Python 中的 os.path.expanduser 模块获取主目录

逐行分析 Python 代码

发布时间:2023/06/26 浏览次数:115 分类:Python

本文介绍了如何逐行分析 Python 代码并获取有关代码执行的有用信息。首先,我们简单介绍一下profiling; 然后,我们将讨论何时使用逐行分析比使用函数基础分析更好。

Python 中的 MIMEMultipart

发布时间:2023/06/26 浏览次数:186 分类:Python

在本文中,我们将了解如何在 Python 及其 MIME(多用途互联网邮件扩展)模块的帮助下发送带有附件的电子邮件的有效方法。Python 的 MIMEMultipart、MIMEText 和 MIMEBase 模块

Python 中的自动 ARIMA

发布时间:2023/06/26 浏览次数:127 分类:Python

在本文中,我们将了解 Python 中的 Auto ARIMA 及其工作原理。Python 中的自动 ARIMA pmdarima 库中的 auto_arima() 函数有助于确定 ARIMA 模型的最佳参数,并提供拟合的 ARIMA 模型作为结果。

Python 中的方差膨胀因子

发布时间:2023/06/26 浏览次数:93 分类:Python

本文介绍了方差膨胀因子 (VIF) 及其在检测有影响的观测值方面的性能,并演示了如何使用 statsmodels 在 Python 中使用 VIF。Python 中的方差膨胀因子

在 Python 中跨多个文件使用全局变量

发布时间:2023/06/26 浏览次数:92 分类:Python

这个简单的指南是关于在 Python 中跨多个文件使用全局变量的。 但在进入主题之前,我们先简要了解一下全局变量及其在多个文件中的使用。Python 中的全局变量

基于 Python 中的值对计数器进行排序

发布时间:2023/06/26 浏览次数:165 分类:Python

本篇文章介绍如何使用 Python 根据计数器的值对计数器进行排序。Python 计数器概述 计数器是 Python 中集合模块的一部分,可帮助计算特定字符出现的总数。

在Python中发送UDP数据包

发布时间:2023/06/26 浏览次数:92 分类:Python

今天,我们将学习用户数据报协议(UDP),并了解如何使用 Python 编程发送 UDP 数据包。在Python中发送UDP数据包

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便