例子   1:

class A0:
def pri(self):
super().pri()
print("A0") class A1(A0):
def pri(self):
super().pri()
print("A1") class B0:
def pri(self):
print("B0") class B1(B0):
def pri(self):
super().pri()
print("B1") class X(A1, B1):
def pri(self):
super().pri()
print("X") x=X()
x.pri()
print(x.__class__.mro())

输出:

例子   2:

 

class A0:
def pri(self):
#super().pri()
print("A0") class A1(A0):
def pri(self):
super().pri()
print("A1") class B0:
def pri(self):
print("B0") class B1(B0):
def pri(self):
super().pri()
print("B1") class X(A1, B1):
def pri(self):
super().pri()
print("X") x=X()
x.pri()
print(x.__class__.mro())

输出:

例子   3:

 

class A0:
def pri(self):
#super().pri()
print("A0") class B0:
def pri(self):
super().pri()
print("B0") class B1(B0):
def pri(self):
super().pri()
print("B1") class X(B1, A0):
def pri(self):
super().pri()
print("X") x=X()
x.pri()
print(x.__class__.mro())

输出:

例子   4:

 

class A0:
def pri(self):
#super().pri()
print("A0") class B0:
def pri(self):
#super().pri()
print("B0") class B1(B0):
def pri(self):
super().pri()
print("B1") class X(B1, A0):
def pri(self):
super().pri()
print("X") x=X()
x.pri()
print(x.__class__.mro())

输出:

例子   5:

 

class A0:
def pri(self):
super().pri()
print("A0") class B0:
def pri(self):
super().pri()
print("B0") class B1(B0):
def pri(self):
super().pri()
print("B1") class X(B1, A0):
def pri(self):
super().pri()
print("X") x=X()
print(x.__class__.mro())
x.pri()

(A0类中执行pri函数时候调用父类object中的pri函数,由于object类中没有pri函数所以报错)

python之理解super及MRO列表 ( 示例版 )的更多相关文章

  1. super之mro列表牵引出c3算法

    目录 一:super的使用 二:super之mro列表牵引出c3算法 三:mro列表总结使用 一:super的使用 class Person(object): def __init__(self, n ...

  2. 子类中执行父类的方法(引出super()与mro列表)

    1. 我们先想一下在python中如果子类方法中想执行父类的方法,有什么方式?大概有三种: Parent.__init__(self, name) # 通过父类的名字,指定调用父类的方法 super( ...

  3. 认识python中的super函数

    需求分析 在类继承中,存在这么一种情况: class Human(object): def Move(self): print("我会走路...") class Man(Human ...

  4. Python进阶-继承中的MRO与super

    Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...

  5. Python大神必须掌握的技能:多继承、super和MRO算法

    本文主要以Python3.x为例讲解Python多继承.super以及MRO算法. 1. Python中的继承 任何面向对象编程语言都会支持继承,Python也不例外.但Python语言却是少数几个支 ...

  6. Python面向对象中super用法与MRO机制

    1. 引言 最近在研究django rest_framework的源码,老是遇到super,搞得一团蒙,多番查看各路大神博客,总算明白了一点,今天做一点总结. 2. 为什么要用super 1)让代码维 ...

  7. 继承及属性查找+super()和mro()+多态

    继承及属性查找+super()和mro()+多态 一. ★继承 1. 什么是继承? 继承就是新建类的一种方式,新建的类我们称为子类或者叫派生类,被继承的类我们称为父类或者基类 子类可以使用父类中的属性 ...

  8. Python中的super()用法

    Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this,比如:C#),用于传递对象本身,而在调用的时候则不 必显式传递,系统会自动传递. 今天我们介绍的主角是su ...

  9. Python的多继承问题-MRO和C3算法

    大部分内容转载自C3 线性化算法与 MRO 理解Python中的多继承 Python 中的方法解析顺序(Method Resolution Order, MRO)定义了多继承存在时 Python 解释 ...

  10. Python类中super()和__init__()的关系

    Python类中super()和__init__()的关系 1.单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(sel ...

随机推荐

  1. kali linux主题美化

    Kali 主题美化 先放张安装了主题的图片: 执行下面命令下载主题文件: git clone https://github.com/daniruiz/flat-remix-gtk.git git cl ...

  2. C#字符串截取分割方法

    字符串操作:分割 Split.连接数组 Join.拼接 Format.截取 Substring.替换 Replace.左填充 PadLeft.右填充 PadRight.删除 Remove 1 //分割 ...

  3. 『手撕Vue-CLI』完善提示信息

    前言 经过『手撕Vue-CLI』自动安装依赖,已经实现了自动安装依赖的功能. 然而,虽然项目已复制并安装依赖,但其提示信息并不够友好,于是我试着去运行了一下vue create,发现其提示信息是这样的 ...

  4. 状态模式(Sate Pattern)

    一.模式动机 状态模式(State Pattern)是一种较为复杂的行为型模式.它用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题.当系统中某个对象存在多个状态,这些状态之间可以进行转换, ...

  5. 在WPF中使用WriteableBitmap对接工业相机及常用操作

    写作背景 写这篇文章主要是因为工业相机(海康.大恒等)提供的.NET开发文档和示例程序都是用WinForm项目来说明举例的,而在WPF项目中对图像的使用和处理与在WinForm项目中有很大不同.在Wi ...

  6. P2045 方格取数加强版题解

    题目链接:P2045 方格取数加强版 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目: 出一个 n*n 的矩阵,每一格有一个非负整数 A{i,j}且A{i,j} <=10 ...

  7. Meilisearch 安装和使用教程

    如今搜索功能已成为几乎所有应用不可或缺的一部分.无论是电商平台.内容管理系统,还是企业内部知识库,用户都期待能够快速.准确地找到他们需要的信息.然而,传统的搜索解决方案往往面临着诸多挑战:响应速度慢. ...

  8. OpenCV程序练习(三):图像运算

    一.图像加法运算 代码 import cv2 img=cv2.imread("demoimg.jpg",0) #读取图片,参数0等价于cv2.IMREAD_GRAYSCALE,将图 ...

  9. hadoop集群配置文件与功能对应解析

    以三个节点的集群为例: 总括: nodemanager ,datanode  --> slavesresourcemanager ---------->    yarn namenode ...

  10. ABC195E

    其实我们发现很多博弈论的动态规划都是从后往前的,比如过河卒和本题. 这是因为从某种角度上来说这些动态规划有后效性而无前效性. 所以设计状态 \(dp_{i,j}\) 表示第 \(i\) 次操作 \(T ...