class A(object):
def test_func(self):
print("from A") class B(A):
pass
# def test_func(self):
# print("from B") class C(A):
pass
# def test_func(self):
# print("from C") #多继承,2.7和3.0还是有点不一样的,2.7的经典类是深度优先,3.0的经典类也是广度优先,3.0的新式类也是广度优先,就比如类D继承C类和B类,和C类和B类分别继承A类
#如果A B C D中都有一个相同的方法,那么调用的顺序是D,C,B,A,因为我们这里是class D(C,B),所以是调用的顺序是C,B,如果是class D (B,C),那么调用的顺序就是B,C class D(C,B):
pass
# def test_func(self):
# print("from D") d = D()
d.test_func() # 1、如果类D中有test_func这个方法,那么执行该则执行的类D的方法
# from D #2、如果类D中没有test_fucn这个方法,那么首先执行的类C中test_func的方法
# from C #3、如果类C中没有test_func这个方法,那么就会执行类B中的test_func的方法
# from B #4、如果类B、C中没有test_func这个方法,那么就会执行类A中的test_func的方法
# from A

  

python之类之多继承的更多相关文章

  1. 深入super,看Python如何解决钻石继承难题 【转】

    原文地址 http://www.cnblogs.com/testview/p/4651198.html 1.   Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通 ...

  2. python作用域和多继承

    python作用域 python无块级作用域 看c语言代码: #include<stdio.h> int main() { > ) { ; } printf("i = %d ...

  3. python中使用多继承

    python中使用多继承,会涉及到查找顺序(MRO).重复调用(钻石继承,也叫菱形继承问题)等 MRO MRO即method resolution order,用于判断子类调用的属性来自于哪个父类.在 ...

  4. 深入super,看Python如何解决钻石继承难题

    1.   Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object): def __init_ ...

  5. Python中类的__init__继承

    Python中类的__init__继承 概念: 定义父类 In [10]: class Person: ....: def __init__(self,name,age,sex): ....: sel ...

  6. Python设计模式 - 基础 - 封装 & 继承 & 多态

    面向对象的核心是对象,世间万物都可以看作对象,任何一个对象都可以通过一系列属性和行为来描述,可以包含任意数量和类型的数据或操作.类是用来描述具有相同属性和方法的所有对象的集合.类通常是抽象化的概念,而 ...

  7. 【学习笔记】--- 老男孩学Python,day18 面向对象------继承

    继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类, 父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 class Fathe ...

  8. python之面向对象(继承)

    类的继承 python之面向对象(继承) 面向对象的编程带来的主要好处之一是代码的重用,实现这种重用的方法之一是通过继承机制.继承完全可以理解成类之间的类型和子类型关系. 需要注意的地方:继承语法 c ...

  9. python基础之类的继承与派生、组合、接口与归一化设计、抽象类、子类中调用父类方法

    一.什么是继承 继承是一种创建新的类的方式,新建的类可以继承自一个或者多个父类,原始类称为基类或超类,新建的类称为派生类或子类. 派生:子类继承了父类的属性,然后衍生出自己新的属性,如果子类衍生出的新 ...

  10. (转载)深入super,看Python如何解决钻石继承难题

    1.   Python的继承以及调用父类成员 python子类调用父类成员有2种方法,分别是普通方法和super方法 假设Base是基类 class Base(object): def __init_ ...

随机推荐

  1. REST-assured 3发送图片

    上传图片,需要media_id,从上传临时素材获取:https://work.weixin.qq.com/api/doc#10112 https://qyapi.weixin.qq.com/cgi-b ...

  2. [UE4]C++方法多个返回值给蓝图

    如果参数类型带上“&” void URegisterUserWidget::Login(FString& NickName, FString& Password, FStrin ...

  3. CORS跨域的概念与TP5的解决方案

    namespace app\api\behavior; use think\Response; class CORS{ public function appInit(&$params) { ...

  4. RowToColumn

    SELECT S.NAME, sum(decode(S.COURSE,'语文',S.SCORE,0))"语文", sum(decode(S.COURSE,'数学',S.SCORE, ...

  5. jmeter测试20个QPS下的响应时间-设置QPS限制

    添加--->定时器--->Constant Throughput Timer Constant Throughput Timer 的主要属性介绍: 名称:定时器的名称 Target thr ...

  6. python数据结构之链表(一)

    数据结构是计算机科学必须掌握的一门学问,之前很多的教材都是用C语言实现链表,因为c有指针,可以很方便的控制内存,很方便就实现链表,其他的语言,则没那么方便,有很多都是用模拟链表,不过这次,我不是用模拟 ...

  7. pycharm连接虚拟机

    Pycharm需要在版本2017.3.3之后才能连接    通过本地的python解释器运行虚拟机的py文件 需要先配置虚拟环境 配置Ubuntu虚拟环境 # 在VitualBox创建Ubuntu虚拟 ...

  8. Zookeeper 介绍翻译

    源网址链接 https://zookeeper.apache.org/ Apache Zookeeper 开放源码的服务器,提供高可靠的分布式协调服务. Zookeeper是一个维护配置信息,命名服务 ...

  9. centos7防火墙使用方法

    参考网站:https://blog.csdn.net/achang21/article/details/52538049 添加开放指定端口: [root@yao bin]# firewall-cmd ...

  10. HTML5 Canvas ( 矩形的绘制 ) rect, strokeRect, fillRect

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...