前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python学习之类与对象的继承,附案例

python学习之类与对象的继承,附案例

作者头像
吾爱乐享
发布2019-12-30 17:16:53
3890
发布2019-12-30 17:16:53
举报
文章被收录于专栏:吾爱乐享吾爱乐享

python学习之类与对象的继承

类的继承

继承的用法:

class 类名(父类):

没有继承前,我们如果想用另一个类里面的大多数功能或者全部功能,我们只能去手动复制另一个类中的需要用到的代码,然后粘贴到本类中,这就失去了代码的特性复用性,所以出现了继承的概念

继承就是:把父类的功能和属性继承下来,然后子类就拥有了和父类一样的功能,父类中的所有属性和方法都可以被子类调用,而且子类还可以拥有属于它自己的独特的方法

比如:手机类有打电话,发短信,看视频,听音乐等功能,但是这些功能还不满足需求,现在想要创建一个华为手机类,它既有打电话,发短信,看视频,听音乐等功能,还有5G的功能,此时就可以用继承

首先把手机类中的所有方法都继承下来,然后在创建自己独特的方法

案例:

手机类:

class Phone: ”’ 这是一个手机类 主要功能有,打电话,发短信,看电视,听音乐 主要属性有,华为,3000,土豪金,android ”’ #通过初始化函数__init__把属性进行初始化 def __init__(self,brand_name,price,color,os):#可以给初始化参数进行默认值 self.brand_name =brand_name self.price=price self.color= color#把参数赋值给对象,只能用对象调用 Phone.os = os#把参数赋值给类,既可以用类调用也可以用对象调用 #功能,定义了几个方法 def call(self,name): print(‘我的功能是打电话,我给{}打电话’.format(name)) @staticmethod def massage(*arge): print(‘我的功能是用来发短信的,我的短信内容是{}’.format(arge)) @classmethod def watchTV(cls):#类方法,在类方法中调用对象方法,需要类名().方法名(),调用静态方法直接类名.方法名() print(‘我的功能是看电视的’) return  ‘我的功能是看电视的’ @classmethod def music(self,music_name=’天堂’): print(‘我的功能是用来听音乐的,我听的歌曲是{}’.format(music_name)) def calss_info(self):#对象方法 print(‘我的手机是{}手机,颜色是{},是{}系统,价格是{}元’.format(self.brand_name,self.color,self.os,self.price)) #调用类 #p=Phone(‘华为’,3500,’土豪金’,’android’)# 调用类需要在类的后面加一个括号 #p=Phone() #p.call(‘张三’) #p.calss_info() if __name__ == ‘__main__’: Phone.massage(‘今天周末明天又要上班’) Phone.watchTV()

创建一个华为手机类

import calss_init #创建华为类,让它继承手机类 class HuaWei(calss_init.Phone): #华为手机支持5G def G5(self): w =self.watchTV() print(‘我可以用5g了,{0},我可以用5g看电视’.format(w)) #因为父类中有初始化函数,所以继承后创建对象时就需要给初始化参数赋值 h=HuaWei(‘华为’,5000,’蓝色’,’android’) #调用父类里面的call方法 h.call(‘张三’) h.G5()

继承相关的拓展和重写

拓展:就是父类没有的方法,子类独有的方法

重写:就是父类已有的方法,在子类中重新定义新的功能,方法名相同,功能不同

#导入手机类 import calss_init #创建华为类,让它继承手机类 class HuaWei(calss_init.Phone): #华为手机支持5G def G5(self):#这个方法就是拓展出来的方法,是父类中不存在的 w =self.watchTV() print(‘我可以用5g了,{0},我可以用5g看电视’.format(w)) def music(self):#这个方法在父类中存在 这里重新写了不同的功能 print(‘我是一个新的方法,我可以下载歌曲’) #因为父类中有初始化函数,所以继承后创建对象时就需要给初始化参数赋值 h=HuaWei(‘华为’,5000,’蓝色’,’android’) #调用父类里面的call方法 h.call(‘张三’) h.G5() h.music()#此时的music的功能是子类的重新后的功能,和父类没关系

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
短信
腾讯云短信(Short Message Service,SMS)可为广大企业级用户提供稳定可靠,安全合规的短信触达服务。用户可快速接入,调用 API / SDK 或者通过控制台即可发送,支持发送验证码、通知类短信和营销短信。国内验证短信秒级触达,99%到达率;国际/港澳台短信覆盖全球200+国家/地区,全球多服务站点,稳定可靠。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档