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 ...
随机推荐
- INTEL S4500 960G 入手评测
INTEL S4500 960G 入手评测 简易上个图: CDI AS SSD: CDM: AS SSD AND CDM: -
- C# WINFORM 获取上级目录
MessageBox.Show(Application.StartupPath); DirectoryInfo di = new DirectoryInfo(string.Format(@" ...
- shell基础概述
1.0 编程的目的 计算机的发明,是为了用机器取代/解放人力,而编程的目的则是将人类的思想流程按照某种能够被计算机识别的表达方式传递给计算机,从而达到让计算机能够像人脑/电脑一样自动执行的效果. 编程 ...
- IDEA 报错:无效的源发行版 sourceCompatibility
IDEA 报错:无效的源发行版 sourceCompatibility 检查配置文件中的jdk版本的配置,//错误:sourceCompatibility = '18'//修改成正确的如下:sourc ...
- Luban小试牛刀
Luban小试牛刀 LubanUnity LubanUnity配置工具配置解决方案 简介 Github 文档 视频教程 Unity工具 个人感觉挺强大,便捷的,适合中大型游戏项目的配置工作.小 ...
- 洛谷 P1226 快速幂
题目链接:快速幂 思路 简单快速幂模板.a ^ 17 = (a ^ 2) ^ 8 * a,此时pow()中的y就可以视为17 -> 8(y >>= 1),pow()中的x就是底数a ...
- Spring之webMvc异常处理
异常处理可以前端处理,也可以后端处理. 从稳妥的角度出发,两边都应该进行处理. 本文专门阐述如何在服务端进行http请求异常处理. 一.常见的异常类型 当我们做http请求的时候,会有各种各样的可能错 ...
- 架构师必知的11种API性能优化方法
前言 接口性能优化是后端开发人员经常碰到的一道面试题,因为它是一个跟开发语言无关的公共问题. 这个问题既可以很简单,也可以相当复杂. 有时候,只需要添加一个索引就能解决. 有时候,代码需要进行重构. ...
- 背包dp——01背包
01背包是背包dp的基础的重点,重点的基础!!! 题意概要:有 n 个物品和一个容量为 W 的背包,每个物品有重量 w_{i} 和价值 v_{i} 两种属性,要求选若干物品放入背包使背包中物品的总价值 ...
- Coding:小写一个debugfs
Coding:小写一个debugfs 上一次整活还是在上一个月,写了一个简单的module并且熟悉了module的挂载查看和卸载.这一次我们自然玩一个大的,就是利用linux的debugfs AP ...