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 ...
随机推荐
- Linux扩展篇-shell编程(九)-shell 异常处理
1.异常退出 ${0}:获取当前脚本的名称 $?:获取函数返回值或者上一个命令的退出状态 set -x:开启debug调试功能 按照目前个人理解,异常分为以下几种情况: 程序处理的异常退出 程序员判断 ...
- Easysearch 跨集群复制实战
在之前的文章中,有通过网关实现容灾的案例.今天给大家介绍 Easysearch 的跨集群复制功能.该功能可在集群之间复制数据,应用场景包括但不限于以下举例: 灾备同步:将数据同步到灾备中心,灾备中心可 ...
- es6.6.1 java客户端 client基础操作
1.引入jar包 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId&g ...
- Puremvc
Puremvc 框架unitypuremvc PureMVC健壮.易扩展.易维护 Many so-called Model-View-Controller frameworks today seem ...
- DPO: Direct Preference Optimization 直接偏好优化(学习笔记)
学习参考:链接1 一.为什么要提出DPO 在之前,我们已经了解到基于人类反馈的强化学习RLHF分为三个阶段:全监督微调(SFT).奖励模型(RM).强化学习(PPO).但是RLHF面临缺陷:RLH ...
- python提取特定格式的数据
Excel Grid Data Converter 知识点总结 本文档总结了 ExcelGridConverter.py 脚本所涉及的关键 Python 知识点.该脚本用于从多个 Excel 文件中提 ...
- HMS Core 6.2.0版本发布公告
新增动作捕捉能力.通过简单拍摄即可获得人体3D骨骼关键点数据,广泛应用于虚拟形象.体育运动和医学分析等场景: 3D物体建模能力iOS版本上线. 查看详情>> 新增道路吸附能力.可根据坐标点 ...
- P5494 题解
来一发 \(O(\log n)\) 线性空间的解法. 考虑通过只维护线段树叶子节点的虚树的方法压缩空间,考虑记录下每个节点的编号,然后通过异或完求最低位的 \(1\) 的方式求出 LCA 的深度,然后 ...
- MySQL 并发控制(锁得使用)
导读 并发问题:同一时刻进行读写,并发问题回引发数据不一致问题. 解决并发问题:MySQL采用了锁定机制去解决并发问题 锁的分类 MySQL使用两种锁机制去解决问题:共享锁和排他锁,也叫读锁或者写锁. ...
- pom.xml 指定编译jdk版本
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...