通化市网站建设_网站建设公司_自助建站_seo优化
2026/1/19 20:45:59 网站建设 项目流程

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

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%免费

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询