Python经典类与新式类已经经典继承和新式继承;以及继承顺序
经典类和新式类,以及经典继承和新式继承
# class Animal: #经典类
class Animal(object): #新式类def __init__(self,name):self.name = namedef eat(self,foot):print('can eat',foot)class Relation(object):def make_friends(self,obj):print('%s is making friends with %s'%(self.name,obj.name))
class Dog(Animal,Relation): #如果它们都有构造函数,在继承顺序上就会先继承Animal的init构造函数# def __init__(self,age): #这样直接就会覆盖父类的所有构造函数# self.age = age#所以要这样def __init__(self,name,age):# Animal.__init__(self,name) #方法一 经典类的写法super(Dog,self).__init__(name) #方法二 这种方法比较好 新式类的写法self.age = agedef run(self):print('Dog is run soon')print('%d'%self.age)# def eat(self): #直接就将父类方法替换了# print('dog is can eat')def eat(self,foot):Animal.eat(self,foot) #这样就可以在父类方法里面添加方法print('The dog is can eat')class Cat(Animal):def pashu(self):print('cat can pashu %s'%self.name)dog = Dog('dog',10)
# dog.eat('面包')
# dog.run()cat = Cat('cat')
# cat.pashu()# 下面这个就是多继承,注意,这里的cat作为一个参数传进去了
# 其实很好理解
# dog继承了Relation,因此可以多继承
dog.make_friends(cat)
经典类和新式类的继承顺序
#经典类和新式类的继承顺序
class A:def __init__(self):print('A')def __str__(self): #使用之后打印对象时就会有输入return 100
class B(A):# def __init__(self):# print('B')pass
class C(A):# def __init__(self):# print('C')pass
class D(B,C):#这种情况,是先走本身的构造函数,然后根据顺序走其他的:广度优先,横向查找#为什么这样说,因为在B,C时没有在向B、C的父类查询,而是作为最后查询#和上边的相反的查询就是深度优先,记住Python3都是广度优先,#在python2经典类是按深度优先继承的,新式类是按广度优先继承的#python3都是按照广度优先继承的,class A: 经典类class A(object):新式类# def __init__(self):# print('D')pass
# 如果它们都有构造函数,那么构造函数会怎么走
# 测试一下吧
obj = D()
Python经典类与新式类已经经典继承和新式继承;以及继承顺序相关推荐
- python中的__new__与__init__,新式类和经典类(2.x)
在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...
- python中新式类和经典类
python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Pyth ...
- Python中经典类和新式类的区别
首先了解一下什么是经典类,什么是新式类 class Person: #经典类pass class Person2(object): #新式类pass #类名首字母都大写 #在python3里面经典类和 ...
- python新式类和经典类的区别?
在python里凡是继承了object的类,都是新式类. Python2里面继承object的是新式类,没有写父类的是经典类. Python3里只有新式类. 经典类目前在Python里基本没有应用,多 ...
- python经典类新式类_Python新式类与经典类(旧式类)的区别
看写poc的时候看到的,思考了半天,现在解决了 转载自http://blog.csdn.net/zimou5581/article/details/53053775 Python中类分两种:旧式类和新 ...
- python 面向对象 新式类和经典类
# 经典类写法# schoolMember.__init__(self, name, age, sex)# 新式类写法super(Teather, self).__init__(name, age, ...
- python 经典类和新式类
DAY 12. python新式类和旧式类 继承自object基类的类叫做新式类,否则叫做旧式类,python3中的类默认是新式类,之前版本默认是旧式类 root@kail:~# python pyt ...
- Python 新式类与经典类
新式类,经典类 查询匹配 广度查询 横着对每个类进行查询 深度查询 无视平级类,直接寻找下级类 #python 3.0 #新式类 广度查询 #经典类 广度查询 #python 2.0 #新式类 广度查 ...
- Python 中的新式类和经典类的区别?
1. 版本支持 / 写法差异# 在Python 2.x 中 如果你至今使用的还是 Python 2.x,那么你需要了解一下,在Python 2.x中存在着两种类:经典类和新式类. 什么是经典类? Co ...
- Python新式类与经典类(旧式类)的区别
看写poc的时候看到的,思考了半天,现在解决了 转载自http://blog.csdn.net/zimou5581/article/details/53053775 Python中类分两种:旧式类和新 ...
最新文章
- 关于部署osd过程中:Device is in use by a device-mapper mapping问题解决
- AI安防实现单点突破 距全面开花还有多远?
- python写服务器端qt客户端_python写一些简单的tcp服务器和客户端
- 马云发情人节寄语:AI和算法是算不清楚婚姻的
- Fast dev didn't succeed, trying another location
- 人缘还挺好!史玉柱:被人网上恶搞 马云等十几人打电话来慰问我
- synchronized 线程同步,添加对象锁与类锁
- myeclipse8.5 配置pydev环境
- css 清除表单样式,css form表单样式清除
- 吴恩达—机器学习的六个核心算法
- Win10切换到了Users用户怎么切换回来
- (按位取反)运算的理解
- 51单片机的花卉、农田自动浇水灌溉系统开发,Proteus仿真,原理图和C代码
- BestCoder Round #87(1003-【思维】【LISLCS】)
- tomcat启动没有反应以及不写日志解决方法
- 计算机毕业设计SSM道路桥梁工程知识文库系统【附源码数据库】
- Cadence PCB封装绘制
- 微信小程序入门基础教程
- 盗墓笔记之缘起与大结局∶张起灵与汪藏海的500年恩怨情仇
- 前端面试查漏补缺--(十) 前端鉴权
热门文章
- java的课程总结报告_java课程总结
- php课程实验总结报告_PHP课程总结
- 联合国发布全球山脉分布数据
- SQL中永久的修改表的字段名字
- vue 3.0 keep-alive 失效 报错 Cannot read properties of null (reading ‘parentNode‘)
- 7-1 计算一组数据平均值、最大值、最小值 (12 分) 本题目要求读入一组数据,输出其平均值、最大值、最小值。 输入格式: 输入在一行中若干空格间隔的整数。 输出格式: 对每一组输入,在一行中
- android logcat 命令详解
- 最小生成树python算法实践
- UIImage图形放大或缩小
- 东芝宣布推出16TB MG08系列硬盘驱动器