• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Python基础知识学习之类的继承

python 搞代码 4年前 (2022-01-08) 29次浏览 已收录 0个评论
文章目录[隐藏]

今天带大家学习Python的基础知识,文中对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() 

炒菜

四、重写父来源gaodaimacom搞#代%码网类方法

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基础知识学习之类的继承的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python基础知识学习之类的继承

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址