news 2026/3/13 2:49:00

【Python零基础到进阶】类的继承、重写和多继承

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Python零基础到进阶】类的继承、重写和多继承

包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!

1.类的基本概念(烤红薯案例)

1classKaohongshu:2"""烤红薯的类"""34def__init__(self):5self.level=0# 烘烤程度6self.condition="生的"# 状态78defcook(self,time):9self.level+=time10# 根据烘烤时间更新状态11ifself.level>8:12self.condition="烤成灰了"13elifself.level>5:14self.condition="烤好了"15elifself.level>3:16self.condition="半生不熟"17else:18self.condition="生的"1920definfo(self):21print(f"烤了{self.level}分钟,状态:{self.condition}")2223# 使用示例24digua=Kaohongshu()25digua.cook(2)26digua.info()# 输出:烤了2分钟,状态:生的
关键点:
3.方法可以修改对象的属性(如cook方法修改level)

二、类的继承(父子关系)

1. 继承的概念
继承是指一个类(子类)可以继承另一个类(父类)的属性和方法。子类可以直接使用父类的属性和方法,也可以扩展或修改父类的行为。
继承关系:
示例代码
1classPerson:2"""人类基类"""3def__init__(self,name,age,gender):4self.name=name# 实例属性:姓名5self.age=age# 实例属性:年龄6self.gender=gender# 实例属性:性别78defhello(self):9"""问候方法"""10print(f"你好,我的名字是{self.name},我的年龄是{self.age}岁,我的性别是{self.gender}。")1112defbirthday(self):13"""年龄增长方法"""14self.age+=115print(f"生日快乐!我现在{self.age}岁了。")1617# 实例化测试18laifu=Person("来福",20,"男")19laifu.hello()# 输出:你好,我的名字是来福...20laifu.birthday()# 年龄+1并打印提示
继承实践
1classSon(Person):# 继承Person类的所有功能2pass# 空实现,仅继承34# 子类实例化5beibei=Son("蓓蓓",18,"女")6beibei.hello()# 直接调用继承的方法7beibei.birthday()# 调用继承的方法
2.🌱 所有类的"老祖宗":object类
写法如下所示:
1# 写法1:显式继承object(推荐)2classDog(object):3pass45# 写法2:隐式继承object(Python3会自动补上)6classCat:7pass89# 验证继承关系10print(Dog.__bases__)# 输出:(<class 'object'>,)11print(Cat.__bases__)# 输出:(<class 'object'>,)

object类的作用
它给所有类预装了基础能力,比如:
3.继承的基本用法
1classAnimal:# 父类2defeat(self):3print("动物会吃东西")45classDog(Animal):# 子类 // 在括号内写入父类的名称,就是继承6defbark(self):7print("狗会汪汪叫")89# 使用示例10xiaobai=Dog()11xiaobai.eat()# 继承父类方法12xiaobai.bark()# 调用自己的方法
语法总结:
3. 方法重写(儿子改进爸爸的方法)
1classCat(Animal):2defeat(self):# 重写父类方法3print("猫吃鱼时会发出呼噜声")45# 使用示例6miaomiao=Cat()7miaomiao.eat()# 输出:猫吃鱼时会发出呼噜声
语法总结:

三、多继承

1classPainter:2defdraw(self):3print("会画画🎨")45classMusician:6defplay(self):7print("会弹琴🎹")89# 多继承10classStudent(Painter,Musician):11defstudy(self):12print("还会学习📚")1314# 使用15xiaoli=Student()16xiaoli.draw()# 来自Painter17xiaoli.play()# 来自Musician18xiaoli.study()# 自己的方法
1. 基础用法
1classSinger:2defsing(self):3print("🎵 正在唱歌...")45classDancer:6defdance(self):7print("💃 正在跳舞...")89classSuperStar(Singer,Dancer):# 继承多个父类10pass1112# 使用示例13star=SuperStar()14star.sing()# 继承歌手能力15star.dance()# 继承舞者能力
2. 同名方法处理规则
1classTeacher:2defskill(self):3print("📚 会讲课")45classChef:6defskill(self):7print("👨🍳 会做饭")89classSuperMan(Teacher,Chef):10pass1112# 使用示例13clark=SuperMan()14clark.skill()# 输出:📚 会讲课(优先继承写在前面的父类)
⚠️ 继承顺序规则(MRO)
当多个父类有同名方法时:
1classPainter:2defdraw(self):3print("会画画🎨")45classMusician:6defplay(self):7print("会弹琴🎹")89# 多继承10classStudent(Painter,Musician):11defstudy(self):12print("还会学习📚")1314# 使用15xiaoli=Student()16xiaoli.draw()# 来自Painter17xiaoli.play()# 来自Musician18xiaoli.study()# 自己的方法19# 查看继承顺序20print(Student.__mro__)

3.多继承综合案例(奶茶师傅的配方之争)

📜 代码案例解析
1classYidiandian:# 一点点师傅2def__init__(self):3self.kongfu="一点点奶茶配方"# 秘方属性45defmake_tea(self):6print(f"👨🍳 按照《{self.kongfu}》制作奶茶")78defchouyan(self):9print("🚬 偷偷抽了根华子")1011classXicha:# 喜茶师傅12def__init__(self):13self.kongfu="喜茶奶茶配方"1415defmake_tea(self):16print(f"👩🍳 按照《{self.kongfu}》制作奶茶")1718defdrink(self):19print("🍺 下班喝了杯啤酒")2021classCainiao(Yidiandian,Xicha):# 继承两位师傅22def__init__(self):23self.kongfu="自研奶茶配方"# 覆盖父类配方24# pass # 注释掉时使用父类配方2526# 创建学徒对象27tudi=Cainiao()
1️⃣ 属性继承规则

2️⃣ 方法调用顺序
1tudi.make_tea()2# 输出:👨🍳 按照《自研奶茶配方》制作奶茶
执行逻辑:
所以,运行结果如下:

3️⃣ 非冲突方法继承
1tudi.chouyan()# 🚬 来自一点点师傅2tudi.drink()# 🍺 来自喜茶师傅

🧙MRO魔法解析
1print(Cainiao.__mro__)2# 输出:(<class '__main__.Cainiao'>, <class '__main__.Yidiandian'>, <class '__main__.Xicha'>, <class 'object'>)

四、课上练习

题目一:多继承基础
1classA:2defmethod_A(self):3print("这是A类方法 → 来自父类A的核心能力")45classB:6defmethod_B(self):7print("这是B类方法 → 来自父类B的专属技能")89classC(A,B):# 👑 多重继承10defmethod_C(self):11print("这是C类方法 → 子类自主研发的新功能")1213# 使用示例14super_c=C()15super_c.method_A()# 🅰 继承自A16super_c.method_B()# 🅱 继承自B17super_c.method_C()# © 自有方法1819""" 20 输出结果: 21 这是A类方法 → 来自父类A的核心能力 22 这是B类方法 → 来自父类B的专属技能 23 这是C类方法 → 子类自主研发的新功能 24 """

题目二:多继承应用
1classPainters:2defdraw(self):3print("🎨 绘制《星空》完成 → 来自画家基因")45classMusicians:6defplay(self):7print("🎹 演奏《月光曲》完成 → 继承音乐天赋")89classStudents(Painters,Musicians):10definfo(self):11print("\n🌟 学霸技能展示:")12self.draw()# 调用画家父类方法13self.play()# 调用音乐家父类方法14print("📚 额外技能:量子物理研究")# 自有功能1516# 使用示例17xiaoming=Students()18xiaoming.info()1920""" 21 输出结果: 22 🌟 学霸技能展示: 23 🎨 绘制《星空》完成 → 来自画家基因 24 🎹 演奏《月光曲》完成 → 继承音乐天赋 25 📚 额外技能:量子物理研究 26 """

题目三:三重继承实战
1classAnimal:2defrun(self):3print("🏃♂️ 陆地疾驰 → 继承动物奔跑能力")45classBirds:6deffly(self):7print("🕊️ 高空翱翔 → 获得鸟类飞行特性")89classFishes:10defswim(self):11print("🏊♂️ 深水潜游 → 融合鱼类游泳技能")1213classDuck(Animal,Birds,Fishes):14definfo(self):15print("\n🦆 鸭王能力展示:")16self.run()# 动物类方法17self.fly()# 鸟类方法18self.swim()# 鱼类方法19print("🥇 特殊技能:铁锅炖自己")# 鸭子专属2021# 使用示例22super_duck=Duck()23super_duck.info()2425""" 26 输出结果: 27 🦆 鸭王能力展示: 28 🏃♂️ 陆地疾驰 → 继承动物奔跑能力 29 🕊️ 高空翱翔 → 获得鸟类飞行特性 30 🏊♂️ 深水潜游 → 融合鱼类游泳技能 31 🥇 特殊技能:铁锅炖自己 32 """


🟢总结

🟡文末福利

🔴包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】领取!

可以扫描下方二维码领取【保证100%免费

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/4 5:01:37

Windows实用小工具,吾爱出品

今天给大家推荐两款使用率非常高的小软件&#xff0c;这两个小软件大大提高了处理文件的效率&#xff0c;有需要的小伙伴可以下载收藏。 Mp4ToGif 视频转GIF Mp4ToGif软件能把视频中的任意一部分片段&#xff0c;转换成想要的GIF格式。 软件操作方法也简单&#xff0c;选择好视…

作者头像 李华
网站建设 2026/3/11 21:10:38

第三章 西门子PLC中手动程序编辑模板

1、概述 本文主要讲解我们经常遇到的手动程序的编程思路和方法,通过这篇文章你将了解到真正的手动程序,比我们书本上学的要复杂得多,需要考虑方方面面的因素,才能适应生产现场的要求,下面我们具体看一下都有哪些? 2、软件配置 名称 版本 博图 V16

作者头像 李华
网站建设 2026/3/6 23:36:57

第五章 PROFACE触摸屏手动模板

1、概述 在调试机床“连续循环”运行前应保证机床部件的手动运行无错误,在程序编写前应了解机床所用到的PLC型号、触摸屏型号使用正确的编程软件进行程序编写。虽然本文档只以设备众多部件中的一个部件进行手动程序的讲解,但每个部件的程序编辑方式大同小异,并不影响对其他…

作者头像 李华
网站建设 2026/3/4 4:19:40

实时云渲染助力数字孪生绿色低碳:从“碳可视”到“碳可优”

随着“双碳”目标深入&#xff0c;能源结构优化、工业降碳与建筑绿色化进程全面加速。中国信通院2025年报告指出&#xff0c;数字孪生正从辅助监测工具&#xff0c;向支撑降碳治理全过程的核心底座演进&#xff0c;目标是从 “碳可视” 迈向 “碳可控、碳可优”。然而&#xff…

作者头像 李华
网站建设 2026/3/11 20:35:05

当商品计划可被推演 库存就不再是赌

国家统计局数据显示&#xff0c;2025上半年社会消费品零售总额增速持续走低&#xff0c;限额以上服装鞋帽类零售额同比仅增长0.3%。在增长放缓的背景下&#xff0c;许多本土服装企业同时遭遇多重挤压&#xff1a;消费趋势变化更快&#xff0c;品牌进入老化阶段&#xff1b;渠道…

作者头像 李华
网站建设 2026/3/12 21:30:17

Substance Painter 纹理烘焙:法线贴图与 AO 贴图制作指南

在次世代PBR纹理工作流中&#xff0c;Substance Painter&#xff08;SP&#xff09;的法线贴图与AO贴图烘焙是提升模型质感的核心步骤。法线贴图能让低模呈现高模的凹凸细节&#xff0c;AO贴图可模拟缝隙阴影增强层次感&#xff0c;二者结合是实现逼真视觉效果的关键。本文将拆…

作者头像 李华