博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python学习笔记-day10-01-【 类的扩展: 重写父类,新式类与经典的区别】
阅读量:4321 次
发布时间:2019-06-06

本文共 1153 字,大约阅读时间需要 3 分钟。

上周已经记录过类的许多定义概念,今天接着继承来说说,如何重写父类,以及在Python2与python3中中经典类与新式类的区别。

 

一、重写父类

1、重写,继承父类方法,方法定义完全一样,只是子类实现换成了子类所特有的特性。

class Zll():    def smile(self):        print('哈哈哈哈')class Xz(Zll,Dcg):    def smile(self):#重写父类的方法        print('呵呵呵')

 

2、重写父类方法,但是还想保持父类本身的实身,子类本身也有自己的实现

class Zll():    def smile(self):        print('哈哈哈哈')    def smile2(self):        print('哈哈哈哈')class Dcg():    def smile2(self):        print('啊啊啊啊')class Xz(Zll,Dcg):    def smile(self):#重写父类的方法        print('呵呵呵')    def smile2(self): #重写父类的方法        # Zll().smile2() #调用了父类        super(Xz, self).smile2()  #这个自动帮你找到父类的        #如果是单继承的时候,Zll().smile2()与super(Xz, self).smile2()一样        #如果是多继承的时候,super(Xz, self).smile2()会先找到谁就会用谁了,不会再进行多次调用父类        print('呵呵呵')#1、父类的方法一点用的没有,我重新写#2、父类有这个方法,但是呢,它的功能不够完善,#   给这个方法在原有的基础上,加上# x = Xz()# x.smile2()

 

二、经典类与新式类的区别

1、python3中两者的区别

#经典类与新式类的区别class My:    passclass My2(object):    pass#在python3是没有任何区别的

2、python2中两者的区别

class My:    passclass My2(object):    pass#在python2里是有区别的#在python2里面,一个是深度优先,一个是广度优先
#python2里 #经典类是深度优先 #新式类 #新式类是广度优先 #在pyton2经典类里面不能调用super #在python3里面都是广度优先
 

  

转载于:https://www.cnblogs.com/shmily2018/p/9094577.html

你可能感兴趣的文章
面试题5:字符串替换空格
查看>>
[Codevs] 线段树练习5
查看>>
Amazon
查看>>
hMailServer搭建简单邮件系统
查看>>
从零开始学习jQuery
查看>>
opacity半透明兼容ie8。。。。ie8半透明
查看>>
CDOJ_24 八球胜负
查看>>
Alpha 冲刺 (7/10)
查看>>
一款jQuery打造的具有多功能切换的幻灯片特效
查看>>
SNMP从入门到开发:进阶篇
查看>>
@ServletComponentScan ,@ComponentScan,@Configuration 解析
查看>>
unity3d 射弹基础案例代码分析
查看>>
thinksns 分页数据
查看>>
os模块
查看>>
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>