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中类分两种:旧式类和新 ...
最新文章
- Qt 程序在 Windows 下的发布
- 编程入门书籍-Python基础教程(第3版)
- 【bat脚本】使用ffmpeg工具剥离某一个声道
- 黄学东出任微软全球人工智能首席技术官!微软首位华人技术院士全面负责Azure云AI...
- 如何在现有的ul中添加li?
- 51nod 1836:战忽局的手段(期望)
- php+mysql+into_PHP+Mysql 如何实现数据库增删改查
- java爬取单张图片
- 3、事件响应函数(一)
- 【面试笔记系列】排序算法汇总
- 【MySQL】浅谈一致性读
- bzoj4552[HEOI2016/TJOI2016]排序(二分+线段树)
- CCCardinalSplineBy概念
- 全面超越Swin Transformer | Facebook用ResNet思想升级MViT
- ASP.NET性能调优
- 常用的绩效管理系统应该具备哪些功能呢?
- tp5与tp6的区别是啥呀?
- 利用Javascript生成txt文本文件
- 如何在服务器上配置深度学习环境
- Echarts3实例 双Y轴柱状图
热门文章
- 【Java基础教程】标识符与关键字
- mysql shutdown 命令_Mysql 5.7.9 shutdown 语法实例详解
- ABAP 后台执行程序
- android应用安装包大小优化
- android 防卸载功能,android手机上有没有有防止卸载功能的隐私加密软件。谢谢!最好用的最强大的...
- R-数据加载(csv,excel,txt,rdata,spss,stata)
- 三种方式实现生产者-消费者模型
- 高清壁纸下载:15款精美的2014年元旦桌面壁纸
- 2022年施工升降机司机(建筑特殊工种)考题及模拟考试
- 不要做一个浮躁的人 认清自己