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
(资源库 www.zyku.net)
原文链接:https://blog.csdn.net/Demon_LMMan/article/details/117390571
上一篇:Pytorch 中net.train 和 net.eval的使用说明
栏 目:Python教程
下一篇:pytorch中.to(device) 和.cuda()的区别说明
本文标题:Python基础知识学习之类的继承
本文地址:https://www.zyku.net/python/9733.html
您可能感兴趣的文章
- 02-08Python基础之模块相关知识总结
- 02-08Python基础学习之条件控制语句小结
- 01-25Python基础之数据类型知识汇总
- 01-25Python基础之语法错误和异常详解
- 01-25Python基础之logging模块知识总结
- 04-24Python 基础学习教程
- 03-31Ubuntu 20 使用systemd创建自定义开机
- 12-22HTML <footer> 标签
- 02-17正则表达式验证IPV4地址功能实例分析
- 06-21帝国CMS自动获取TAG首字母教程
- 03-31教你学会通过python的matplotlib库绘
- 01-18黄子韬Z TAO-黄子韬Z TAO应用软件功能
- 07-05Linux eject命令
- 03-15荣耀50se设置网速显示步骤方法
- 11-03微信个性化广告关闭快捷按钮在哪
- 12-31爱在古诗词-爱在古诗词应用软件功能介
- 02-21DedeCMS模板调用标签之首页标签大全
- 01-12炎豹阅读-炎豹阅读应用软件功能介绍
- 07-18华为mate30pro开启24小时制显示操作方
- 03-29魅族18息屏显示消息设置方法
最近更新
阅读排行
猜你喜欢
- 11-10QQ音乐宠物怎么屏蔽
- 10-14小米11pro怎么打开应用小窗模式
- 09-22iqoo8pro设置电池百分比步骤介绍
- 03-25oppoa55开启一键锁屏教程
- 10-14苹果13promax定位怎么开
- 01-13dedecms页面获取会员状态的方法
- 12-30吉酒荟-吉酒荟应用软件功能介绍
- 12-07鸿蒙系统添加相册到首页教程一览
- 09-16小米mix4怎么定位找回
- 10-11vivox70pro+在哪开启应用隐藏