经典类和新式类,以及经典继承和新式继承

# 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经典类与新式类已经经典继承和新式继承;以及继承顺序相关推荐

  1. python中的__new__与__init__,新式类和经典类(2.x)

    在python2.x中,从object继承得来的类称为新式类(如class A(object))不从object继承得来的类称为经典类(如class A()) 新式类跟经典类的差别主要是以下几点: 1 ...

  2. python中新式类和经典类

    python中的类分为新式类和经典类,具体有什么区别呢?简单的说, 1.新式类都从object继承,经典类不需要. Python 2.x中默认都是经典类,只有显式继承了object才是新式类 Pyth ...

  3. Python中经典类和新式类的区别

    首先了解一下什么是经典类,什么是新式类 class Person: #经典类pass class Person2(object): #新式类pass #类名首字母都大写 #在python3里面经典类和 ...

  4. python新式类和经典类的区别?

    在python里凡是继承了object的类,都是新式类. Python2里面继承object的是新式类,没有写父类的是经典类. Python3里只有新式类. 经典类目前在Python里基本没有应用,多 ...

  5. python经典类新式类_Python新式类与经典类(旧式类)的区别

    看写poc的时候看到的,思考了半天,现在解决了 转载自http://blog.csdn.net/zimou5581/article/details/53053775 Python中类分两种:旧式类和新 ...

  6. python 面向对象 新式类和经典类

    # 经典类写法# schoolMember.__init__(self, name, age, sex)# 新式类写法super(Teather, self).__init__(name, age, ...

  7. python 经典类和新式类

    DAY 12. python新式类和旧式类 继承自object基类的类叫做新式类,否则叫做旧式类,python3中的类默认是新式类,之前版本默认是旧式类 root@kail:~# python pyt ...

  8. Python 新式类与经典类

    新式类,经典类 查询匹配 广度查询 横着对每个类进行查询 深度查询 无视平级类,直接寻找下级类 #python 3.0 #新式类 广度查询 #经典类 广度查询 #python 2.0 #新式类 广度查 ...

  9. Python 中的新式类和经典类的区别?

    1. 版本支持 / 写法差异# 在Python 2.x 中 如果你至今使用的还是 Python 2.x,那么你需要了解一下,在Python 2.x中存在着两种类:经典类和新式类. 什么是经典类? Co ...

  10. Python新式类与经典类(旧式类)的区别

    看写poc的时候看到的,思考了半天,现在解决了 转载自http://blog.csdn.net/zimou5581/article/details/53053775 Python中类分两种:旧式类和新 ...

最新文章

  1. 关于部署osd过程中:Device is in use by a device-mapper mapping问题解决
  2. AI安防实现单点突破 距全面开花还有多远?
  3. python写服务器端qt客户端_python写一些简单的tcp服务器和客户端
  4. 马云发情人节寄语:AI和算法是算不清楚婚姻的
  5. Fast dev didn't succeed, trying another location
  6. 人缘还挺好!史玉柱:被人网上恶搞 马云等十几人打电话来慰问我
  7. synchronized 线程同步,添加对象锁与类锁
  8. myeclipse8.5 配置pydev环境
  9. css 清除表单样式,css form表单样式清除
  10. 吴恩达—机器学习的六个核心算法
  11. Win10切换到了Users用户怎么切换回来
  12. (按位取反)运算的理解
  13. 51单片机的花卉、农田自动浇水灌溉系统开发,Proteus仿真,原理图和C代码
  14. BestCoder Round #87(1003-【思维】【LISLCS】)
  15. tomcat启动没有反应以及不写日志解决方法
  16. 计算机毕业设计SSM道路桥梁工程知识文库系统【附源码数据库】
  17. Cadence PCB封装绘制
  18. 微信小程序入门基础教程
  19. 盗墓笔记之缘起与大结局∶张起灵与汪藏海的500年恩怨情仇
  20. 前端面试查漏补缺--(十) 前端鉴权

热门文章

  1. java的课程总结报告_java课程总结
  2. php课程实验总结报告_PHP课程总结
  3. 联合国发布全球山脉分布数据
  4. SQL中永久的修改表的字段名字
  5. vue 3.0 keep-alive 失效 报错 Cannot read properties of null (reading ‘parentNode‘)
  6. 7-1 计算一组数据平均值、最大值、最小值 (12 分) 本题目要求读入一组数据,输出其平均值、最大值、最小值。 输入格式: 输入在一行中若干空格间隔的整数。 输出格式: 对每一组输入,在一行中
  7. android logcat 命令详解
  8. 最小生成树python算法实践
  9. UIImage图形放大或缩小
  10. 东芝宣布推出16TB MG08系列硬盘驱动器