这篇教程Python基础知识学习之类的继承写得很实用,希望能帮到您。
一、继承的格式类的继承格式如下,括号中的为父类名。
二、单继承下面我们让Man继承自Master类,并调用继承的showSkill方法。 class Master(): def __init__(self): self.skill='炒菜' def showSkill(self): print(self.skill)class Man(Master): passman=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): passman=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): passclass Man(Bagger): passman=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=moneyclass Man(Master): passman=Man()print("原来的money:"+man.get_money().__str__())man.set_money(12)print("后来的money:"+man.get_money().__str__()) 原来的money:100000 后来的money:12
到此这篇关于Python基础知识学习之类的继承的文章就介绍到这了,更多相关python类的继承内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net! Django实现聊天机器人 Django集成富文本编辑器summernote的实现步骤 |