版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python编程基础走进面向对象编程3面向对象是程序开发领域的重要思想,这种思想模拟了人类认识客观世界的思维方式,将开发中遇到的事物皆看作对象。Python支持面向对象编程,且3.x版的Python源码全部是基于面向对象设计的。引入一、类的定义二、创建类的对象在面向对象编程中,最重要的两个概念就是类和对象(也称为实例)。对象是指实实在在存在的各种事物。
例如,某张桌子、某辆汽车、某个学生等。与对象相比,类是抽象的,它是用来描述一组具有相同特征和行为的对象的模板。
例如,学校的学生,其特征包括“学号”“姓名”“性别”等,其行为包括“选课”“上课”“考试”等。走进面向对象编程在程序开发中,要设计一个类,通常需要满足三个要素:类名:这类事物的名字,按照大驼峰命名法起名。属性:这类事物具有什么样的特征。方法:这类事物具有什么样的行为。一、类的定义一、类的定义Python中定义类的基本语法格式如下所示。class类名:#类的内部实现属性名=属性值def方法名(self):方法体注意(1)类名的首字母一般要大写。(2)类的内部实现中一般包括属性的定义和方法的定义。(3)类体相对于class关键字必须保持一定的空格缩进。(4)类方法的第一个参数在定义时一般都习惯用self作为参数名。#定义类classCar:#类的内部实现wheels=4#定义wheels属性definfo(self):
#定义info()方法print('Thisisacar')【例】类的定义。二、创建类的对象在Python中,创建对象的语法格式如下:对象名=类名()创建完对象后,可以使用它来访问类中的变量和方法,具体方法是:对象名.属性名对象名.方法名([参数])【例】为前面定义的Car类创建一个car对象,并访问类中的方法。#定义类classCar:#类的内部实现wheels=4#定义wheels属性definfo(self):
#定义info()方法print('Thisisacar')car=Car() #创建一个对象,并用变量car保存它的引用car.info() #调用info()方法程序运行结果:Thisisacar感谢您的观看Python编程基础类成员和实例成员类中定义的属性(变量)又称为数据成员。数据成员按声明的方式可以分为两类:一类是类成员(类属性),另一类是实例成员(实例属性)。实例成员一般是指在构造函数__init__()中定义的,定义和使用时必须以self作为前缀。类成员是指在类中所有方法之外定义的数据成员。两者的区别是:在主程序中(或类的外部),实例成员属于实例(对象),只能通过对象名访问;而类成员属于类,可以通过类名或对象名都可以访问。类成员和实例成员【例】类成员和实例成员。classCar: #定义Car类type='汽车' #定义类成员def__init__(self,color):self.color=color #定义实例成员car=Car('白色') #创建对象print(Car.type,car.type,car.color)#访问类成员和实例成员并输出执行程序,运行结果如下所示。汽车汽车白色类成员和实例成员在Python中比较特殊的是,可以动态地为类和对象增加成员,这一点是和很多面向对象程序设计语言不同的,也是Python动态类型特点的一种重要体现。动态添加类成员语法格式:类名.新的类成员名=初始值动态添加实例成员语法格式:对象名.新的实例成员名=初始值类成员和实例成员【例】动态地为类和对象增加成员。classCar:type='汽车'#定义类成员def__init__(self,color):self.color=color#定义实例成员car=Car('白色')#创建对象print(Car.type,car.type,car.color)#访问类成员和实例成员并输出C='QQ'#动态增加类成员car.price='10万' #动态增加实例成员print(C,,car.price)#访问增加的类成员和实例成员并输出类成员和实例成员【运行结果】汽车汽车白色QQQQ10万注意:尽量避免类成员和实例成员同名。如果类成员和实例成员同名,那么实例对象会优先访问实例成员。类成员和实例成员感谢您的观看Python编程基础封装、继承和多态封装是面向对象的重要特性之一,它的基本思想是对外隐藏类的细节,提供用于访问类成员的公开接口。这样,类的外部无需知道类的实现细节,只需要使用公开接口便可访问类的内容,这在一定程度上保证了类内数据的安全。为了契合封装思想,我们在定义类时需要满足两点要求:1.将类属性声明为私有属性;2.添加两个供外界调用的公有方法,分别用于设置或获取私有属性的值。封装在Python中,私有成员需在变量名字前加两个下划线“__”,私有方法需在方法名字前加两个下划线“__”。私有成员只有类对象自己能访问,子类对象不能直接访问到这个成员,但在对象外部可以通过“对象名._类名__xxx”这样的特殊方式来访问。私有方法不能通过对象名直接调用,只能在属于对象的方法中通过self调用或在外部通过Python支持的特殊方式来调用。对于这一层面的私有(隐藏),我们需要在类中定义一个公有方法(也称接口函数),在它内部访问被私有化的数据成员和方法,然后外部可以通过接口函数进行访问。封装【例】封装示例。classA: #定义类
def__init__(self):self.__X=10 #定义私有成员并赋值为10def__foo(self): #定义私有方法
print('fromA')defbar(self): #定义公有方法(接口函数)
self.__foo() #在类内部访问私有方法
returnself.__X #返回私有变量__X的值a=A() #创建对象b=a.bar() #调用公有方法(接口函数),将返回值赋给bprint(b) #输出b的值【运行结果】10fromA封装注意:Python目前的私有机制其实是伪私有,实际上,在外部可以通过“_类名__属性”访问私有变量和方法。继承是面向对象的重要特性之一,它主要用于描述类与类之间的关系,可以在不改变原有类的基础上扩展原有类的功能。如果类和类之间具有继承关系,那么被继承的类称为父类或基类,继承其他类的类则称为子类或派生类。继承可以使得子类具有父类的属性和方法或者重新定义、追加属性和方法等。继承在Python中,继承可以分为单继承和多继承。单继承是指一个子类只有一个父类。子类的定义如下所示。class子类名(父类名):多继承是指一个类有多个直接父类。其语法格式如下所示。class子类名(父类名1,父类名2…):注意:子类可以继承父类的所有公有成员和公有方法,但不能继承父类的私有成员和私有方法。继承所谓多态(polymorphism),是指父类的同一个方法在不同子类对象中具有不同的表现和行为。子类继承了父类方法和属性之后,还会增加某些特定的方法和属性,同时还可能会对继承来的某些行为进行一定的改变,这都是多态的表现形式。多态classAnimal:#定义Animal类
def__init__(self,name):#构造方法,定义name=name
defshow(self):#定义show()方法
print('动物名称是{}'.format())classTiger(Animal):#定义Tiger类,继承Animal类
def__init__(self,name,type):#重写构造方法
super().__init__(name)self.type=type
defshow(self):#重写show()方法
print('动物名称是{},种类是{}'.format(,self.type))classPanda(Animal):#定义Panda类,继承Animal类
def__init__(self,name,age):#重写构造方法
super().__init__(name)self.age=agedefshow(self): #重写show()方法
print('动物名称是{},年龄是{}'.format(,self.age))defshowInfo(obj):#定义函数用于接收对象,只要传入的obj对象具有show()方法
obj.show() #调用show()方法#创建对象cat=Animal('猫')tiger=Tiger('老虎','东北虎')panda=Panda('熊猫','3岁')#调用函数showInfo(cat)showInfo(tiger)showInfo(panda)多态【运行结果】动物名称是猫动物名称是老虎,种类是东北虎动物名称是熊猫,年龄是3岁【例】多态示例。感谢您的观看Python编程基础任务1
设计学生信息管理系统随着时代的发展,学生信息化管理已经成为了一个必不可少的重要环节。通过信息化管理,可以实现学生信息的收集、分析和处理,从而更好地为他们提供优质的教学服务。学生信息管理系统应具有添加学生信息、删除学生信息、修改学生信息和查询所有学生信息等功能,负责编辑学生的信息,适时地更新学生的资料。例如,新生入校,要在学生管理系统中录入刚入校的学生信息。本任务将带领大家编写Python程序,用面向对象编程思想设计学生信息管理系统。30任务描述学生系信息管理系统的功能需求--能够提示用户选择功能操作--能够获取用户选择的功能并实现对应功能
1.添加学生信息2.删除学生信息3.展示班级学生信息4.查询学生信息31任务实施1.定义学生类,使用__init__()方法初始化实例成员学生姓名(name)、学号(num)、性别(sex)和年龄(age)。32任务实施2.定义班级类,使用__init__()方法初始化实例成员班级名称(classname),以及add_stu()方法、del_stu()方法、show_stu()方法和get_stu()方法,其中,add_stu()方法用于添加学生信息,del_stu()方法用于删除学生信息,show_stu()方法用于展示班级学生信息,get_stu()方法用于查询学生信息。33任务实施3.实例化班级对象myClass1,使用while循环实现主程序入口,提示用户选择功能操作,然后获取用户选择的功能,最后根据用户的选择,班级对象myClass1分别调用成员方法add_stu()、del_stu()、show_stu()和get_stu()。34任务实施感谢您的观看Python编程基础任务2开发“人机猜拳”游戏“人机猜拳”游戏需要实现的功能是通过用户键盘和电脑进行猜拳比赛,用户所选择的手势由用户输入,电脑的手势则随机产生。猜拳游戏一般包含三种手势:石头、剪刀、布,判定规则为:石头胜剪刀、剪刀胜布、布胜石头。根据猜拳的游戏规则对用户和电脑选择手势进行判断哪方获胜。本任务将带领大家利用P
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年呼和浩特职业学院单招职业适应性测试题库带答案详解(培优b卷)
- 2026年四川文化产业职业学院单招职业技能测试题库及完整答案详解
- 2026年四川国际标榜职业学院单招职业技能测试题库附答案详解(完整版)
- 2026年四川文化产业职业学院单招职业倾向性考试题库含答案详解(a卷)
- 围手术期患者并发症观察与处理
- 6.2任务二 成本法下长期股权投资业务核算与应用
- 绩溪县职业规划报告
- 2026年上半年上海市卫生健康技术评价中心工作人员公开招聘考试备考题库及答案解析
- 2026上半年黑龙江省眼病防治所博士岗位招聘2人考试参考题库及答案解析
- 2026江西水投资本管理有限公司中层管理人员招聘1人笔试模拟试题及答案解析
- 传播学纲要(第3版)课件 第十章 传播现象的批判视角
- 腹腔镜高碳酸血症预防处理
- 2025年湖南高速铁路职业技术学院单招职业倾向性测试题库附答案
- 2023-2024学年第一学期理论力学期终考试试卷
- 中国网络附加存储(NAS)行业市场动态分析及前景战略研判报告
- 病原生物与免疫学基础(第5版)课件 绪论
- 2024至2030年中国电厂凝汽器数据监测研究报告
- 钻探设备工具材料一览表
- 电气工作三种人培训
- 《一线表扬学》读书心得体会
- 简易游泳池采购投标方案(技术方案)
评论
0/150
提交评论