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

# 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. Qt 程序在 Windows 下的发布
  2. 编程入门书籍-Python基础教程(第3版)
  3. 【bat脚本】使用ffmpeg工具剥离某一个声道
  4. 黄学东出任微软全球人工智能首席技术官!微软首位华人技术院士全面负责Azure云AI...
  5. 如何在现有的ul中添加li?
  6. 51nod 1836:战忽局的手段(期望)
  7. php+mysql+into_PHP+Mysql 如何实现数据库增删改查
  8. java爬取单张图片
  9. 3、事件响应函数(一)
  10. 【面试笔记系列】排序算法汇总
  11. 【MySQL】浅谈一致性读
  12. bzoj4552[HEOI2016/TJOI2016]排序(二分+线段树)
  13. CCCardinalSplineBy概念
  14. 全面超越Swin Transformer | Facebook用ResNet思想升级MViT
  15. ASP.NET性能调优
  16. 常用的绩效管理系统应该具备哪些功能呢?
  17. tp5与tp6的区别是啥呀?
  18. 利用Javascript生成txt文本文件
  19. 如何在服务器上配置深度学习环境
  20. Echarts3实例 双Y轴柱状图

热门文章

  1. 【Java基础教程】标识符与关键字
  2. mysql shutdown 命令_Mysql 5.7.9 shutdown 语法实例详解
  3. ABAP 后台执行程序
  4. android应用安装包大小优化
  5. android 防卸载功能,android手机上有没有有防止卸载功能的隐私加密软件。谢谢!最好用的最强大的...
  6. R-数据加载(csv,excel,txt,rdata,spss,stata)
  7. 三种方式实现生产者-消费者模型
  8. 高清壁纸下载:15款精美的2014年元旦桌面壁纸
  9. 2022年施工升降机司机(建筑特殊工种)考题及模拟考试
  10. 不要做一个浮躁的人 认清自己