Python类(三)-多继承的区别
多继承的有两个方式,一个是广度优先,一个是深度优先
Python2中经典类按深度优先,新式类按广度优先
Python3中经典类和新式类都按广度优先
# -*- coding:utf-8 -*-
__author__ = "MuT6 Sch01aR" class A():
def __init__(self):
print('A') class B(A):
def __init__(self):
print('B') class C(A):
def __init__(self):
print('C') class D(B,C):
pass D()
D继承了B,C
B,C分别继承了A
第一级为A,第二级为B和C(左边的优先),第三级为D
首先在Python3环境下运行,看看结果

首先继承了B,把B中内容改为pass,运行

D继承了C,再把C中内容改为pass,运行

D最后继承了A
可见广度优先的顺序为:B->C->A,即先同一级,再上一级
再在Python2环境中运行,看看是什么情况

首先是B,把B中内容改为pass,运行

D继承了A,把A中内容改为pass,运行

D最后继承了C
深度优先的继承顺序为:B->A->C,即先上一级,再同一级
Python类(三)-多继承的区别的更多相关文章
- Python面向对象三要素-继承(Inheritance)
Python面向对象三要素-继承(Inheritance) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.继承概述 1>.基本概念 前面我们学习了Python的面向对象三 ...
- python类的静态方法和类方法区别
先看语法,python 类语法中有三种方法,实例方法,静态方法,类方法. # coding:utf-8 class Foo(object): """类三种方法语法形式&q ...
- mfc 类三种继承方式下的访问
知识点 public private protected 三种继承方式 三种继承方式的区别 public 关键字意味着在其后声明的所有成员及对象都可以访问. private 关键字意味着除了该类型的创 ...
- 关于Python类的多继承中的__mro__属性使用的C3算法以及继承顺序解释
刚刚学到类的多继承这个环节,当子类继承多个父类时,调用的父类中的方法具体是哪一个我们无从得知,为此,在Python中有函数__mro__来表示方法解析顺序. 当前Python3.x的类多重继承算法用的 ...
- Python 类的多继承
#类的多继承 ''' 与c++不同,python的类经过优化,多继承时不会产生方法二义性 ''' #python中所有的类都是默认继承于object类 class A(object): def tes ...
- python类属性在继承中的修改的影响
class A(object): x = 1 class B(A): pass class C(A): pass # 通过父类修改类属性,子类继承的类属性也改变 A.x = 3 print(A.x, ...
- python类的实例方法\静态方法\类方法区别解析(附代码)
前言 搞了好久python,一直搞得不太清楚这几种类的方法,今天花时间好好测试一下,算是弄懂点皮毛吧. 三种方法的不同 先剽窃个图看一下 可以看到,实例是三种方法都可以调用的,而类只可以调用两种.所以 ...
- Python类总结-字段,方法,属性区别及StaticMethod, Property,私有字段和私有属性
类包含下列 静态属性 动态属性 静态方法 动态方法 class Province: #静态字段--属于类,调用方法类.字段名 memo = "中国23个省之一" #动态字段--属于 ...
- Python类三种方法,函数传参,类与实例变量(一)
1 Python的函数传递: 首先所有的变量都可以理解为内存中一个对象的'引用' a = 1 def func(a): a = 2 func(a) print(a) # 1 a = 1 def fun ...
随机推荐
- 【bzoj3240 && 洛谷P1397】矩阵游戏[NOI2013](矩阵乘法+卡常)
题目传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3240 这道题其实有普通快速幂+费马小定理的解法……然而我太弱了,一开始只想到了矩阵乘法的 ...
- 怎样在WIN7系统下安装IIS和配置ASP
一:Windows7系统 (IIS是WIN7自带的,版本7.0),首先是安装IIS.打开控制面板,找到“程序与功能”,点进去,点击左侧“打开或关闭Windows功能”,找到“Internet 信息服务 ...
- DataX-MySQL(读写)
DataX操作MySQL 一. 从MySQL读取 介绍 MysqlReader插件实现了从Mysql读取数据.在底层实现上,MysqlReader通过JDBC连接远程Mysql数据库,并执行相应的sq ...
- 派派和京东的paipai域名之争
最近有一款叫“派派”的APP很火,微博上.电梯里.群里到处都是推广广告.不仅如此,还有大张伟.关晓彤.王祖蓝等十几个明星发帖为“派派”站台.有消息称,派派这段时间仅线上推广就花去了约1600万. 总融 ...
- Qt QFileSystemModel QDirModel 示例代码, 使用方法
1. QFileSystemModel 查看,添加 和 删除目录 2. 实现代码 dialog.h #ifndef DIALOG_H #define DIALOG_H #include <QD ...
- javascript的宿主环境
关于javascript语言,最有意思的是它必须要在一个宿主环境中运行,其中受欢迎的宿主环境当然就是浏览器了,但这并不是我们唯一的选择, javascript完全可以运行在服务器端,桌面以及富媒体环境 ...
- Launch an instance from a volume
从image boot,并且attach一个no-bootable volume: $ nova boot --flavor --image -af91-43d8-b5e6-a4506aa8f369 ...
- mysql数据简单去重
我有一个 foo 表,定义了如下几个字段:id / a / b,其中 id 是主键,a,b 原本应该具有唯一性, 但因为程序 bug 导致 a,b 内容有重复,现在我要在 a,b 上加唯一索引,请问如 ...
- 考虑 PHP 5.0~5.6 各版本兼容性的 cURL 文件上传
最近做的一个需求,要通过PHP调用cURL,以multipart/form-data格式上传文件.踩坑若干,够一篇文章了. 重要警告 没事不要读PHP的官方中文文档!版本跟不上坑死你! 不同版本PHP ...
- linux(centos)安装Nexus
1.解压nexus压缩包 tar xvzf ./nexus-2.13.0-01-bundle.tar.gz 2.修改配置文件: 修改jetty配置 [root@localhost nexus]# vi ...