经典类与新式类的继承顺序
1 #经典类与新式类的继承顺序 2 3 class Teacher(object): 4 cn='Harvard' 5 def __init__(self,name,age,sex): 6 self.name=name 7 self.age=age 8 self.sex=sex 9 self.__money=5600 10 11 def show_private_attribule(self): 12 print('private attribute:%s' %self.__money) 13 14 class Master(Teacher): 15 def __init__(self,name,age,sex,subject): 16 Teacher.__init__(self,name,age,sex)#重构父类的构造函数,继承多个就多写一个 17 #super(Master,self).__init__(name,age,sex) #通用写法,继承多个父类都可以用这一个 18 #继承多个类,只运行第一个类的构造函数,其它的不运行 19 #没有,横向逐个找,向上找(查找策略:广度优先 )(新式类) 20 #python2.x是深度优先 (经典类) 21 self.subject=subject 22 print('in the Master') 23 24 def speak(self): 25 print('I am master %s I study %s subject' %(self.name,self.subject)) 26 27 class Doctor(Teacher): 28 def __init__(self,name,age,sex,allowance): 29 Teacher.__init__(self, name, age, sex) 30 #super(Doctor,self).__init__(name,age,sex) 31 self.allowance=allowance 32 print('in the Doctor') 33 34 def ralation(self,obj): 35 print('%s is %s \'s student' %(obj.name,self.name)) 36 37 class Specialist(Master,Doctor): 38 def __init__(self,name,age,sex,subject,allowance,research_field):#先查找Master构造执行,没有向Doctor查找,再没有向上Teacher查找 39 Master.__init__(self,name,age,sex,subject) 40 Doctor.__init__(self,name,age,sex,allowance) 41 self.research_field=research_field 42 print('in the Specialist') 43 44 t1=Teacher('Jack',26,'M') 45 m1=Master('Alice',22,'F','French') 46 d1=Doctor('Monica',28,'F',6600) 47 s1=Specialist('Jones',32,'F','French',6600,'language')
转载于:https://www.cnblogs.com/zhong2018/p/9004686.html
经典类与新式类的继承顺序相关推荐
- Python经典类与新式类已经经典继承和新式继承;以及继承顺序
经典类和新式类,以及经典继承和新式继承 # class Animal: #经典类 class Animal(object): #新式类def __init__(self,name):self.name ...
- python 经典类和新式类
DAY 12. python新式类和旧式类 继承自object基类的类叫做新式类,否则叫做旧式类,python3中的类默认是新式类,之前版本默认是旧式类 root@kail:~# python pyt ...
- 多继承、经典类与新式类、新式类的C3算法详解
多继承Python2版本class A(object) ---> 新式类class B ---> 经典类 Python3版本默认都是新式类 经典类和新式类的不同在于多继承时继承的顺序不同经 ...
- Python的面向对象,魔术方法、类的三大特征、自省、实例空间、经典类与新式类
目录 1.什么是面向对象 1.1 面向过程 1.2 面向对象 1.3 面向对象的优点 2.类 2.1 什么是类.对象,方法和属性 2.2 类的定义和使用 2.2.1 类名规范和类的写法 2.3 魔术方 ...
- Python中经典类和新式类的区别
首先了解一下什么是经典类,什么是新式类 class Person: #经典类pass class Person2(object): #新式类pass #类名首字母都大写 #在python3里面经典类和 ...
- python经典类新式类_Python新式类与经典类(旧式类)的区别
看写poc的时候看到的,思考了半天,现在解决了 转载自http://blog.csdn.net/zimou5581/article/details/53053775 Python中类分两种:旧式类和新 ...
- python 新式类 旧式类_Python新式类与经典类(旧式类)的区别
Python中类分两种:旧式类和新式类: ➤新式类都从object继承,经典类不需要. ➤新式类的MRO(method resolution order 基类搜索顺序)算法采用C3算法广度优先搜索,而 ...
- python 经典类与新式类
经典类和新式类的主要区别就是类的继承的方式 ,经典类遵循深度优先的规则,新式类遵循广度优先的规则.至于什么是深度优先什么是广度优先,可以看如下示例: class A(object):def print ...
- 继承,经典类与新式类的MRO,C3算法,super
#继承 class JiaoFu:def qd(self):print("教父带你祈祷") class Fu:def msj(self):print("alex喜欢msj ...
最新文章
- Eclipse,Mycclipse自动补全快捷键设置
- 牛!开创交互式电脑绘图先河,虚拟现实之父传奇
- Lua1.0 代码分析 库
- 使用 Windows PowerShell 实现 Web UI 自动化
- git 与团队协同开发,避免冲掉别人代码的方法
- 理解ASP.NET Core中的中间件
- PAT:1050. String Subtraction (20) AC
- java自动生成函数注释_IDEA类和方法注释自动生成(2019-08-31 21:47写)
- element el-autocomplete组件 自定义传参的解决方法
- 620集成显卡和mx250,轻薄本的新独显!MX250现身英伟达官网,核显3.5倍性能
- Nrf51xxx Bluetooth Related
- vscode替换全局搜索快捷键
- liunx 全盘查找_Linux中查找文件夹的命令
- 论文阅读 - On the efficacy of old features for the detection of new bots - CCF B
- WPM3012-3/TR单P沟道 增强型MOS 场效应晶体管WILLSEM
- java word文档生成目录_Java使用POI添加Word文档的目录(Table of contents)
- 世界上最快的浏览器(mxnitro浏览器)
- 学生HTML个人网页作业作品(游戏网站全套源码)
- MS Project 2010视频教程总结
- 优必选发布4999元便携机器人“悟空”,开放ROSA机器人系统
热门文章
- 计算机视觉-计算机视觉开源库OpenCV基础
- strcpy函数实现的几种方式
- 关于浏览器和浏览器内核的解释
- 暗黑再临Java正版_暗黑破坏神之墨菲斯托
- oracle ogg双向通步,使用ogg的Oracle-Oracle的双向复制
- 黑苹果睡眠无法唤醒_电脑睡眠后无法唤醒怎么办?
- 001_html简介
- linux内核 漏洞扫描,Linux kernel中存在15年的漏洞
- ListView和RecyclerView的Adapter封装
- 密码算法中iv值是什么_?标检测中的?极?值抑制算法(nms):python代码解析