第10章 面向对象(上)-【千锋教育】Python快乐编程基础入门
2023-03-21
|
30页
|
124人阅读
|
2人下载
教辅
内容正文:
第10章 面向对象(上)
类方法
静态方法
运算符重载
小案例
对象与类
类的定义
对象的创建
构造方法
析构方法
1
对象与类
类的定义
对象的创建
构造方法
析构方法
类方法
静态方法
运算符重载
小案例
目 录
CATALOUGUE
初心至善 匠心育人
01
02
04
05
03
06
07
08
2
理解对象与类的概念
掌握方法与静态方法、运算符重载
掌握类的定义与对象的创建
掌握构造方法与析构方法
学 习 目 标
LEARNING OBJECTIVES
初心至善 匠心育人
10.1 对象与类
在现实世界中,随处可见的一种事物就是对象,对象是事物存在的实体,如学生、汽车等。人类解决问题的方式总是将复杂的事物简单化,于是就会思考这些对象都是由哪些部分组成的。通常都会将对象划分为两个部分,即静态部分与动态部分。顾名思义,静态部分就是不能动的部分,这个部分被称为“属性”,任何对象都会具备其自身属性,如一个人,其属性包括高矮、胖瘦、年龄、性别等。然而具有这些属性的人会执行哪些动作也是一个值得探讨的部分,这个人可以转身、微笑、说话、奔跑,这些是这个人具备的行为(动态部分),人类通过探讨对象的属性和观察对象的行为来了解对象。
在计算机世界中,面向对象程序设计的思想要以对象来思考问题,首先要将现实世界的实体抽象为对象,然后考虑这个对象具备的属性和行为。例如,现在面临一名足球运动员想要将球射进对方球门这个实际问题,试着以面向对象的思想来解决它。步骤如下:
初心至善 匠心育人
4
10.1 对象与类
首先可以从这一问题中抽象出对象,这里抽象出的对象为一名足球运动员。
然后识别这个对象的属性。对象具备的属性都是静态属性,如足球运动员有一个鼻子、两条腿等,这些属性如图所示。
接着识别这个对象的动态行为,即足球运动员的动作,如跳跃、转身等,这些行为都是这个对象基于其属性而具有的动作,这些行为如图所示。
初心至善 匠心育人
5
10.1 对象与类
识别出这个对象的属性和行为后,这个对象就被定义完成了,然后根据足球运动员具有的特性制定要射进对方球门的具体方案以解决问题。
究其本质,所有的足球运动员都具有以上的属性和行为,可以将这些属性和行为封装起来以描述足球运动员这类人。由此可见,类实质上就是封装对象属性和行为的载体,而对象则是类抽象出来的一个实例。这也是进行面向对象程序设计的核心思想,即把具体事物的共同特征抽象成实体概念,有了这些抽象出来的实体概念,就可以在编程语言的支持下创建类。因此,类是那些实体的一种模型,具体如图所示。
在图中,通过面向对象程序设计的思想可以建立现实世界中具体事物、实体概念与编程语言中类、对象之间的一一对应关系。
初心至善 匠心育人
6
10.2 类的定义
Python使用class关键字来定义类,其语法格式如下:
其中,类名的首字母一般需要大写,具体示例如下:
其中,实例方法与前面学习的函数格式类似,区别在于类的所有实例方法都必须至少有一个名为self的参数,并且必须是方法的第一个形参(如果有多个形参),self参数代表将来要创建的对象本身。另外,self.name称为实例属性,在类的实例方法中访问实例属性时需要以self为前缀。
初心至善 匠心育人
10.2 类的定义
在类中定义实例方法时,第一个参数指定为“self”只是一个习惯。实际上,该参数的名字是可以变化的,具体如下所示:
尽管如此,本书建议大家编写代码时仍以self作为实例方法的第一个参数名字,这样便于他人阅读代码。
初心至善 匠心育人
10.3
对象的创建
初心至善 匠心育人
10.3 对象的创建
在Python中,有两种对象:类对象与实例对象。类对象只有一个,而实例对象可以有多个。
初心至善 匠心育人
10.3 对象的创建
10.3.1 类对象
类对象是在执行class语句时创建的,如例所示。
在例中,Python执行class语句时创建一个类对象和一个变量(名称就是类名称),变量引用类对象。通过type()函数可以测试对象的类型。
在定义类时,还可以定义类属性,如例所示。
在例中,第6行通过“类名.类属性名”方式访问类属性。
初心至善 匠心育人
10.3 对象的创建
10.3.2 实例对象
实例对象通过调用类对象来创建(就像调用函数一样来调用类对象),每个实例对象继承类对象的属性,并获得自己的命名空间。实例方法的第一个参数默认为self,表示引用实例对象。在实例方法中对self的属性赋值才会创建属于实例对象的属性,如例所示。
初心至善 匠心育人
10.3 对象的创建
10.3.2 实例对象
如果类中存在相同名称的类属性与实例属性,则通过实例对象只能访问实例属性,如例所示。
此外,还可以通过赋值运算符修改或增加类对象与实例对象的属性,如例
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。