当前位置: 首页 > news >正文

阶段二开始-第一章—8天Python从入门到精通【itheima】-118节(继承)

目录

118节——继承

1.学习目标

2.继承的引出

3.单继承

4.多继承

5.注意事项

6.小节总结

好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:

关于 “老师与学生的困局”—— 工程思维看教育

你的 “休学突围”—— 私有成员的力量

给未来的战略:做 “无法被继承的新类”


118节——继承

1.学习目标

1.理解继承的概念

2.掌握继承的使用方法

3.掌握pass关键字的作用

2.继承的引出

继承可以理解为手机的迭代升级,一代在一代的基础上不断迭代升级。

若不使用继承,每一次都是不在原有基础上更新迭代,而是每一次去重新写一个类,过程略显繁琐。

 

3.单继承

在继承的基础上,父类的东西子类都可以用,而且是继承关系,重复的想要继承的东西,就无需再写,把想要在子类中出现的东西,写出来就好。

继承的语法:

在继承中,是不含私有方法的。

单继承的代码演示:

# 118节——继承"""
演示面向对象:继承的基础语法
"""# 演示单继承
# 定义父类
class Phone:# 定义父类中的成员变量IMEI=None  #序列号producer="HM"       #生产厂商# 定义父类中的成员方法def call_by_4g(self):print("4g通话")# 定义子类
class Phone2022(Phone):# 定义子类中新的成员变量face_id="10001"# 定义子类中新的成员方法def call_by_5g(self):print("2022年的新功能:5g通话")# 针对于子类,创建对象,并检验继承父类的成员变量和成员方法能否使用
phone=Phone2022()print(phone.producer)  #HM
phone.call_by_4g()   #4g通话
phone.call_by_5g()   #2022年的新功能:5g通话 

4.多继承

多继承的语法:

# 演示多继承# 第一个手机类  【父类】
class Phone:IMEI="10001"producer="HM"def call_by_4g(self):print("4g通话")# 第二个NFC读卡器类    【父类】
class NFCReader:nfc_type="第五代"producer="HM"def read_card(self):print("NFC读卡")def write_card(self):print("NFC写卡")# 第三个红外线遥控器类    【父类】
class RemoteControl:rc_type="红外遥控"def control(self):print("红外遥控开启了")# 构建子类
class MyPhone(Phone,NFCReader,RemoteControl):pass  #pass用来补全语法,替代类里面的内容# 创建子类的对象,并测试子类在多继承中是否能通过多继承继承到父类中的内容
phone=MyPhone()phone.call_by_4g()
phone.read_card()
phone.write_card()
phone.control()
# 控制台输出结果:
# 4g通话
# NFC读卡
# NFC写卡
# 红外遥控开启了

5.注意事项

多继承中的注意事项:在多继承中,如果继承的父类有多个同名,那么,继承的优先级从左往右依次降低。

【也就是:先继承的先保留,后继承的被覆盖】


 

# 演示在多继承的场景下,父类成员名一致的情况# 演示多继承# 第一个手机类  【父类】
class Phone:IMEI="10001"producer="itcast"def call_by_4g(self):print("4g通话")# 第二个NFC读卡器类    【父类】
class NFCReader:nfc_type="第五代"producer="HM"def read_card(self):print("NFC读卡")def write_card(self):print("NFC写卡")# 第三个红外线遥控器类    【父类】
class RemoteControl:rc_type="红外遥控"def control(self):print("红外遥控开启了")# 构建子类
class MyPhone(Phone,NFCReader,RemoteControl):pass  #pass用来补全语法,替代类里面的内容# 创建子类的对象,并测试子类在多继承中是否能通过多继承继承到父类中的内容
phone=MyPhone()phone.call_by_4g()
phone.read_card()
phone.write_card()
phone.control()
# 控制台输出结果:
# 4g通话
# NFC读卡
# NFC写卡
# 红外遥控开启了print(phone.producer)  #itcast
# 先继承的先保留,后继承的被覆盖

6.小节总结


好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:

Patrick 学弟:

 

展信如晤。

 

你代码里的 “继承” 让我想起在现代建设做工程师时,接手的项目总要继承前团队的烂摊子 —— 既有可用的图纸(父类属性),也得推翻错误设计(突破继承局限)。你的同学继承了 “安逸” 的父类,却懒得拓展新功能;而你在休学的 “异常状态” 里,硬是给人生这个类新增了 “韧性” 和 “清醒” 的方法,这比任何语法都珍贵。

关于 “老师与学生的困局”—— 工程思维看教育

那位 HBase 老师的愤怒,像极了我在清溪川工地看到工人偷懒时的心情。但后来我明白:工程师的责任是建好桥,不是逼不会游泳的人跳水。教育和建桥一样,材料不行,再努力也撑不起重量。你要学的,是从这些 “不及格” 的现实里 筛选可用的 “父类资源”:比如老师的负责态度(可借鉴的方法)、同学的反面教材(需规避的错误),把它们变成你的测试用例,而非情绪负担。

你的 “休学突围”—— 私有成员的力量

我在釜山海关当小职员时,也经历过 “人生异常”:被诬陷、停职,相当于被强制抛出异常。但我每天在码头扛包时,都在给 “李明博” 这个类写私有方法:啃会计书、学日语(如同你死磕 Python)。后来证明,那些被隐藏的努力(如同代码里的私有成员),才是突破继承链的关键。

 

你休学仍坚持,像极了我在工地宿舍抄字典的日子 ——真正的成长,往往发生在 “父类” 看不到的地方

给未来的战略:做 “无法被继承的新类”

你说 “前途冥冥注定”,但我在青瓦台领悟:所有注定,都是 “持续拓展” 的结果。就像你的子类Phone2022,继承 4G 却开发 5G—— 明年复学,你要做的不是和摆烂的同学比,而是让自己成为 “无法被继承的新类”

 
  • 当别人纠结父类的producer(出身、环境),你已用 Python 和大数据,给人生写好了call_by_5G的方法;
  • 当他人抱怨 “父类方法过时”(就业难),你早通过私有成员(持续学习),攒够了重构的资本。
 

清溪川的水变清,不是因为骂脏水,而是持续注入清泉。你现在敲的每一行代码,流的每一滴汗,都是往人生河流里注入的清水。记住:能突破继承链的,从不是对父类的抱怨,而是对新功能的执着

 

盼你归来时,已把 “专科生” 的父类,改写成 “数据工程师” 的新类。

 

李明博
2025 年 6 月 28 日

相关文章:

  • 《红黑树实现》
  • 基于esp32s3的自定义唤醒词识别-单元测试
  • 基于CNN卷积神经网络图像识别小程序9部合集
  • 【算法深练】单调栈:有序入栈,及时删除垃圾数据
  • 2.搭建Pytorch神经网络进行气温预测
  • 数据湖 vs 数据仓库:数据界的“自来水厂”与“瓶装水厂”?
  • 表达式求值
  • Launcher3中的CellLayout 和ShortcutAndWidgetContainer 的联系和各自职责
  • 华为云镜像仓库下载 selenium/standalone-chrome 镜像
  • SQL关键字三分钟入门:ROW_NUMBER() —— 窗口函数为每一行编号
  • 深度学习-分类
  • Sensodrive SensoJoint机器人力控关节模组抗振动+Sensodrive力反馈系统精准对接
  • web3 docs
  • 力扣第73题-矩阵置零
  • Java面向对象(一)
  • 对话式数据分析与Text2SQL Agent产品可行性分析思考
  • Python 数据分析:numpy,抽提,整数数组索引
  • 从单体架构到微服务:微服务架构演进与实践
  • 如何解决电脑windows蓝屏问题
  • 叉车考试真题(含答案)pdf下载