迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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 ,我们可以在继承时进行相应的更改。

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

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便