python之理解super及MRO列表 ( 示例版 )
例子 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列表 ( 示例版 )的更多相关文章
- super之mro列表牵引出c3算法
目录 一:super的使用 二:super之mro列表牵引出c3算法 三:mro列表总结使用 一:super的使用 class Person(object): def __init__(self, n ...
- 子类中执行父类的方法(引出super()与mro列表)
1. 我们先想一下在python中如果子类方法中想执行父类的方法,有什么方式?大概有三种: Parent.__init__(self, name) # 通过父类的名字,指定调用父类的方法 super( ...
- 认识python中的super函数
需求分析 在类继承中,存在这么一种情况: class Human(object): def Move(self): print("我会走路...") class Man(Human ...
- Python进阶-继承中的MRO与super
Python进阶-继承中的MRO与super 写在前面 如非特别说明,下文均基于Python3 摘要 本文讲述Python继承关系中如何通过super()调用"父类"方法,supe ...
- Python大神必须掌握的技能:多继承、super和MRO算法
本文主要以Python3.x为例讲解Python多继承.super以及MRO算法. 1. Python中的继承 任何面向对象编程语言都会支持继承,Python也不例外.但Python语言却是少数几个支 ...
- Python面向对象中super用法与MRO机制
1. 引言 最近在研究django rest_framework的源码,老是遇到super,搞得一团蒙,多番查看各路大神博客,总算明白了一点,今天做一点总结. 2. 为什么要用super 1)让代码维 ...
- 继承及属性查找+super()和mro()+多态
继承及属性查找+super()和mro()+多态 一. ★继承 1. 什么是继承? 继承就是新建类的一种方式,新建的类我们称为子类或者叫派生类,被继承的类我们称为父类或者基类 子类可以使用父类中的属性 ...
- Python中的super()用法
Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this,比如:C#),用于传递对象本身,而在调用的时候则不 必显式传递,系统会自动传递. 今天我们介绍的主角是su ...
- Python的多继承问题-MRO和C3算法
大部分内容转载自C3 线性化算法与 MRO 理解Python中的多继承 Python 中的方法解析顺序(Method Resolution Order, MRO)定义了多继承存在时 Python 解释 ...
- Python类中super()和__init__()的关系
Python类中super()和__init__()的关系 1.单继承时super()和__init__()实现的功能是类似的 class Base(object): def __init__(sel ...
随机推荐
- Python BeautifulSoup定位取值
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* ...
- CF364E
problem 算法1 我会暴力!!! 直接枚举右上角和左下角,然后计算答案,使用前缀和优化后时间复杂度为 \(O(n^4)\). 算法2 我会分治!!!. 我们知道答案就是左边+右边+两边都有的个数 ...
- 手机上玩 PC 游戏的开源项目「GitHub 热点速览」
上周国产 3A 大作<黑神话:悟空>开启预售,同时公布游戏将于北京时间 2024.8.20 正式上线.这是一款由「游戏科学」开发的西游题材单机·动作·角色扮演游戏,它采用「虚幻引擎5」制作 ...
- FlashDuty Changelog 2023-12-18 | 值班管理、服务日历、自定义操作和邮件集成
FlashDuty:一站式告警响应平台,前往此地址免费体验! 值班管理 UI 交互优化 [个人日程]从头像下拉菜单调整到值班列表页面,快速查看个人值班日程 [值班列表]支持原地预览最近一周值班情况,包 ...
- work02
第一题: 看程序说答案 int a = 10; int b = 3; int c = a + b;//13 int d = a - b;//7 int e = a * b; //30 int f = ...
- OAuth + Security - 7 - 异常翻译
认证异常翻译 默认情况下,当我们在获取令牌时输入错误的用户名或密码,系统返回如下格式响应: { "error": "invalid_grant", " ...
- Python数据类型(数字,字符串,[列表],(元组),{字典:字典值},{列表,列表2})
Python数据类型(数字,字符串,[列表],(元组),{字典:字典值},{列表,列表2}) # 1. # Python3 数字(Number) # Python 数字数据类型用于存储数值. # 数据 ...
- java基础-匿名类/对象
最近有同事问我,以下这个语句是什么意思? MqMessge<MqMessgeThink> mm= JSON.parseObject(message.toString(),new TypeR ...
- Ubuntu访问samba共享文件
Ubuntu访问samba共享文件 参考:https://www.cnblogs.com/Wolf-Dreams/p/11241198.html 做法 安装samba-client.cifs-util ...
- UEFI与inf文件
UEFI与inf文件 背景 学习高通UEFI中的LCD显示框架,看到有些博客对inf文件进行了介绍,因此整理了这方面的一些入门知识. 参考: https://blog.csdn.net/yunfeng ...