第8篇:模板与实例——面向对象编程入门(上)python中文编程
作者中文编程倡导者—— 李金雨联系方式wbtm2718qq.com系列python中文编程入门教程** 核心理念 AI时代必须使用中文编程母语编程阅读效率极高第8篇模板与实例——面向对象编程入门上开篇引入本课目标理解什么是模板类和实例对象掌握为什么要使用模板掌握如何定义模板class掌握如何创建实例对象理解成员数据属性的概念和使用理解成员功能方法的概念和使用理解self参数的含义生活场景引入同学们在日常生活中我们经常会遇到一些具有共同特征的事物饼干店里的饼干都是用同一个模具做出来的小区里的房子都是按照同一套图纸建造的孩子们用乐高积木拼出来的模型都是按照说明书搭建的在Python中我们可以使用类模板来描述这些具有共同特征的事物然后创建对象实例来表示具体的个体。面向对象编程让我们可以更自然地模拟现实世界中的事物。预期成果展示在本课结束时你将能够定义自己的类模板创建类的实例对象给类添加成员数据和成员方法访问和修改对象的属性调用对象的方法编写一个学生类和一个动物类概念讲解1. 什么是模板类和实例对象模板类是一种抽象的描述定义了一组属性和方法用于创建具有共同特征的对象。实例对象是根据类创建的具体个体具有类定义的属性和方法。生活例子模板就像饼干模具实例就像具体的饼干模板就像建筑图纸实例就像建好的房子模板就像乐高说明书实例就像拼好的模型代码示例# 定义一个学生模板类class学生:学生模板用于创建学生实例pass# 创建学生实例对象学生一学生()学生二学生()print(学生一)print(学生二)2. 为什么要用模板使用模板类有以下好处代码复用可以创建多个具有相同结构的对象数据封装将数据和操作数据的方法封装在一起逻辑清晰使代码更加结构化和易于理解便于维护修改类的定义会影响所有实例生活例子饼干模具可以做出很多相同形状的饼干建筑图纸可以用来建造多栋相同的房子乐高说明书可以用来拼出多个相同的模型3. 定义模板class在Python中我们使用class关键字来定义类。基本结构class类名:类的说明文档# 类的属性和方法模板命名规范类名应该使用中文名词类名的首字母应该大写大驼峰命名法代码示例# 定义学生模板class学生:学生模板用于创建学生实例pass# 定义动物模板class动物:动物模板用于创建动物实例pass# 定义汽车模板class汽车:汽车模板用于创建汽车实例pass4. 创建实例对象创建实例对象的过程称为实例化语法为实例名 类名()。实例命名规范实例名应该使用中文名词实例名应该小写代码示例# 创建学生实例学生一学生()学生二学生()# 创建动物实例狗动物()猫动物()# 创建汽车实例轿车汽车()卡车汽车()print(学生一)print(狗)print(轿车)5. 成员数据属性成员数据是类中定义的变量用于存储对象的状态。定义成员数据class学生:学生模板def__init__(self,姓名,年龄):初始构造功能self.姓名姓名 self.年龄年龄 self.成绩0访问和修改成员数据# 访问成员数据print(学生一.姓名)print(学生一.年龄)# 修改成员数据学生一.成绩95print(学生一.成绩)生活例子学生的姓名、年龄、成绩动物的名称、年龄、种类汽车的品牌、颜色、速度代码示例# 定义学生模板class学生:学生模板def__init__(self,姓名,年龄):初始构造功能self.姓名姓名 self.年龄年龄 self.成绩0# 创建学生实例学生一学生(张三,15)学生二学生(李四,16)# 访问成员数据print(学生一.姓名,学生一.年龄,学生一.成绩)print(学生二.姓名,学生二.年龄,学生二.成绩)# 修改成员数据学生一.成绩95学生二.成绩88print(学生一.姓名,的成绩是,学生一.成绩)print(学生二.姓名,的成绩是,学生二.成绩)6. 成员功能方法成员功能是类中定义的函数用于操作对象的状态。定义成员功能class学生:学生模板def__init__(self,姓名,年龄):初始构造功能self.姓名姓名 self.年龄年龄 self.成绩0def学习(self,科目):学生学习某个科目print(f{self.姓名}正在学习{科目})def考试(self,科目,分数):学生参加某科目的考试self.成绩分数print(f{self.姓名}的{科目}考了{分数}分)调用成员功能# 调用成员功能学生一.学习(数学)学生一.考试(数学,95)self参数的含义self是一个特殊参数指向当前对象在方法内部通过self访问对象的属性和方法调用方法时不需要传递self参数生活例子学生的学习、考试方法动物的吃、睡方法汽车的启动、加速方法代码示例# 定义学生模板class学生:学生模板def__init__(self,姓名,年龄):初始构造功能self.姓名姓名 self.年龄年龄 self.成绩0self.科目列表[]# 成员功能def学习(self,科目):学生学习某个科目self.科目列表.append(科目)print(f{self.姓名}正在学习{科目})def考试(self,科目,分数):学生参加某科目的考试self.成绩分数print(f{self.姓名}的{科目}考了{分数}分)def显示信息(self):显示学生的所有信息print(f姓名{self.姓名})print(f年龄{self.年龄}岁)print(f成绩{self.成绩}分)print(f学习的科目{self.科目列表})# 创建实例学生一学生(张三,15)学生一.学习(数学)学生一.学习(英语)学生一.考试(数学,95)学生一.显示信息()动手实践基础练习必做创建动物模板编写一个动物类包含名称、年龄、声音以及叫的功能# 动物模板class动物:动物模板def__init__(self,名称,年龄,声音):初始构造功能self.名称名称 self.年龄年龄 self.声音声音def叫(self):动物发出叫声print(f{self.名称}发出{self.声音}的叫声)def显示信息(self):显示动物信息print(f名称{self.名称})print(f年龄{self.年龄}岁)print(f叫声{self.声音})# 创建实例狗动物(小狗,2,汪汪)猫动物(小猫,1,喵喵)狗.叫()猫.叫()狗.显示信息()猫.显示信息()创建汽车模板编写一个汽车类包含品牌、颜色、速度以及加速、减速功能# 汽车模板class汽车:汽车模板def__init__(self,品牌,颜色,速度0):初始构造功能self.品牌品牌 self.颜色颜色 self.速度速度def加速(self,增加速度):汽车加速self.速度增加速度print(f{self.颜色}的{self.品牌}加速到{self.速度}km/h)def减速(self,减少速度):汽车减速self.速度max(0,self.速度-减少速度)print(f{self.颜色}的{self.品牌}减速到{self.速度}km/h)def显示信息(self):显示汽车信息print(f品牌{self.品牌})print(f颜色{self.颜色})print(f当前速度{self.速度}km/h)# 创建实例轿车汽车(宝马,红色)卡车汽车(解放,蓝色)轿车.加速(60)轿车.加速(30)轿车.减速(20)轿车.显示信息()卡车.加速(40)卡车.减速(10)卡车.显示信息()进阶练习选做创建书籍模板编写一个书籍类包含书名、作者、价格以及显示信息功能# 书籍模板class书籍:书籍模板def__init__(self,书名,作者,价格):初始构造功能self.书名书名 self.作者作者 self.价格价格def显示信息(self):显示书籍信息print(f书名{self.书名})print(f作者{self.作者})print(f价格{self.价格}元)# 创建实例书1书籍(Python编程从入门到实践,Eric Matthes,89.0)书2书籍(小王子,安托万·德·圣-埃克苏佩里,29.5)书1.显示信息()print(\n)书2.显示信息()创建银行账户模板编写一个银行账户类包含账户名、余额以及存款、取款功能# 银行账户模板class银行账户:银行账户模板def__init__(self,账户名,余额0):初始构造功能self.账户名账户名 self.余额余额def存款(self,金额):存款self.余额金额print(f{self.账户名}存款{金额}元当前余额{self.余额}元)def取款(self,金额):取款if金额self.余额:self.余额-金额print(f{self.账户名}取款{金额}元当前余额{self.余额}元)else:print(f余额不足当前余额{self.余额}元)def显示信息(self):显示账户信息print(f账户名{self.账户名})print(f当前余额{self.余额}元)# 创建实例账户1银行账户(张三)账户2银行账户(李四,1000)账户1.存款(500)账户1.取款(200)账户1.显示信息()print(\n)账户2.取款(1500)账户2.取款(800)账户2.显示信息()挑战练习拓展创建学生管理系统编写一个学生管理系统包含添加学生、显示学生信息、计算平均分等功能# 学生管理系统class学生:学生模板def__init__(self,姓名,年龄):初始构造功能self.姓名姓名 self.年龄年龄 self.成绩字典{}def添加成绩(self,科目,分数):添加科目成绩self.成绩字典[科目]分数def计算平均分(self):计算平均分ifnotself.成绩字典:return0returnsum(self.成绩字典.values())/len(self.成绩字典)def显示信息(self):显示学生信息print(f姓名{self.姓名})print(f年龄{self.年龄}岁)print(f成绩{self.成绩字典})print(f平均分{self.计算平均分():.2f})class学生管理系统:学生管理系统def__init__(self):初始构造功能self.学生列表[]def添加学生(self,学生):添加学生self.学生列表.append(学生)print(f添加学生{学生.姓名}成功)def显示所有学生(self):显示所有学生信息ifnotself.学生列表:print(没有学生信息)returnfori,学生inenumerate(self.学生列表,1):print(f\n第{i}个学生)学生.显示信息()def计算班级平均分(self):计算班级平均分ifnotself.学生列表:return0总分数0总科目数0for学生inself.学生列表:总分数sum(学生.成绩字典.values())总科目数len(学生.成绩字典)if总科目数0:return0return总分数/总科目数# 测试学生管理系统系统学生管理系统()# 添加学生学生1学生(张三,15)学生1.添加成绩(数学,95)学生1.添加成绩(英语,88)学生1.添加成绩(语文,92)系统.添加学生(学生1)学生2学生(李四,16)学生2.添加成绩(数学,85)学生2.添加成绩(英语,90)系统.添加学生(学生2)# 显示所有学生系统.显示所有学生()# 计算班级平均分班级平均分系统.计算班级平均分()print(f\n班级平均分{班级平均分:.2f})知识总结核心概念回顾类模板定义对象的属性和方法的蓝图对象实例根据类创建的具体个体属性成员数据对象的状态信息方法成员功能对象的行为self参数指向当前对象的引用关键代码速查功能代码说明定义类class 类名: 代码块定义一个类初始化方法def __init__(self, 参数): 代码块初始化对象的属性创建对象对象名 类名(参数)创建类的实例访问属性对象名.属性名访问对象的属性修改属性对象名.属性名 值修改对象的属性定义方法def 方法名(self, 参数): 代码块定义类的方法调用方法对象名.方法名(参数)调用对象的方法常见错误提醒缩进错误类和方法的缩进不正确参数错误__init__方法的参数不匹配self参数方法定义时忘记添加self参数属性访问访问不存在的属性命名错误类名或方法名拼写错误课后作业巩固练习题编写一个手机类包含品牌、型号、价格以及打电话、发短信功能编写一个电脑类包含品牌、型号、内存以及开机、关机功能创意编程题编写一个图书馆类包含书籍列表以及添加书籍、“借出书籍”、归还书籍功能编写一个学校类包含学生列表和教师列表以及添加学生、“添加教师”、显示信息功能下篇预习提示在下一篇中我们将深入学习__init__方法了解如何在创建对象时初始化其属性。请思考如何在创建对象时设置默认值如何验证输入的参数如何在初始化时执行一些操作学习交流如果你在学习过程中遇到任何问题欢迎联系我** 视频号“时空系”邮箱wbtm2718qq.com其他提示本人正在开发纯中文编程语言和编译器有兴趣的可以交流本人正在写一本基于中国母语思维习惯的数学教材可以让你一年内学完从初中到研究生的数学而且可以让你快速掌握人工智能的关键数学知识有兴趣的可以交流祝你学习愉快
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2564424.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!