python类的继承怎么样用?一文带你快速了解继承
Admin 2021-08-19 群英技术资讯 569 次浏览
这篇文章主要介绍Python数据类型,很多新手在学习Python时,对类的继承不是很了解,下文给大家介绍了继承的用法,重写父类方法等等内容,具有一定参考学习价值,感兴趣的朋友可以看一看,希望大家阅读完这篇文章能有所收获。
类的继承格式如下,括号中的为父类名。
class 类名(父类名): 代码
下面我们让Man继承自Master类,并调用继承的showSkill方法。
class Master(): def __init__(self): self.skill='炒菜' def showSkill(self): print(self.skill) class Man(Master): pass man=Man() man.showSkill()
炒菜
我们可以在括号中写入多个父类,并用逗号隔开,就可以表示多继承。
需要注意的是,如果父类中有同名的方法或属性被子类继承,子类优先继承第一个父类的方法。
''' 测试python多继承 多继承时,若父类有同名的属性或方法,则优先继承先继承的父类 ''' class Master(): def __init__(self): self.skill='炒菜' def showSkill(self): print(self.skill) class Bagger(): def __init__(self): self.skill='乞讨' def showSkill(self): print(self.skill) class Man(Master,Bagger): pass man=Man() man.showSkill()
炒菜
python中重写父类方法不需要override等任何的关键字,直接把原来的方法重写一遍就好。
class Master(): def __init__(self): self.skill='炒菜' print("Master初始化完毕") def showSkill(self): print(self.skill) class Bagger(): def __init__(self): self.skill='乞讨' print("Bagger初始化完毕") def showSkill(self): print(self.skill) #重写父类的方法 class Man(Master,Bagger): #重写__init__方法时,并不会调用父类的__init方法 def __init__(self): #重写父类的属性skill self.skill='飞天' def showSkill(self): print("我的技能是:"+self.skill) man=Man() man.showSkill()
我的技能是:飞天
通过__mro__()方法我们可以得到当前类继承的所有类。
class Master(): def __init__(self): self.skill='炒菜' def showSkill(self): print(self.skill) class Bagger(Master): pass class Man(Bagger): pass man=Man() print(Man.__mro__)
我们可以通过super().方法名,来调用父类中的 方法,哪怕该方法在子类中被重写了。
class Master(): def __init__(self): self.skill='炒菜' def showSkill(self): print(self.skill) class Man(Master): def __init__(self): self.skill='吃饭' def showSkill(self): print(self.skill) super().__init__() super().showSkill() man=Man() man.showSkill()
吃饭
炒菜
我们可以在方法或属性名前加上 __ 来表示私有,在类的继承中,只有父类的私有方法无法被继承,其他属性与方法都将被继承,但私有属性不能在子类中直接访问,但我们可以同过继承的父类公有方法来对其访问。
下面我们定义私有属性money,并创建共有方法set_money与get_money从子类中对其进行访问。
class Master(): #在属性或方法面前加__,表示访问权限为私有 __money=100000 def __init__(self): pass #设置为私有方法,无法被继承 def __showMoney(self): print(self.__money) #使子类可以通过共有方法访问私有属性 def get_money(self): return self.__money def set_money(self,money): self.__money=money class Man(Master): pass man=Man() print("原来的money:"+man.get_money().__str__()) man.set_money(12) print("后来的money:"+man.get_money().__str__())
原来的money:100000
后来的money:12
以上就是关于python类的继承的用法介绍,希望对大家学习和理解python类的继承有帮助,想要了解更多python类的继承的内容,大家可以关注其他相关文章。
文本转载自脚本之家
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要介绍了python 解决微分方程的操作(数值解法),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了Python pyecharts绘制词云图代码,
今天教大家怎么实现Tkinter透明窗体,在上篇文章给大家介绍过透明窗体上绘制小球,今天接着通过实例代码给大家分享python使用tkinter实现透明窗体上绘制随机出现的小球的实例代码,感兴趣的朋友跟随小编一起看看吧
这篇文章主要介绍了python中的断言(assert语句),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
这篇文章主要介绍了python udp如何实现同时收发信息,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008