内容正文:
Python少儿编程
第七章 神秘的类和对象
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
目录
1.1
“小海龟”的自我介绍
1.2
“小海龟”的画布
1.3
“小海龟”的画笔
1.4
多彩的图画
1.5
多彩的图画
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
PART 01
面向对象的编程世界
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
面向对象的编程世界
1
传统的程序设计方法被称为面向过程的程序设计。面向过程程序设计的核心是过程,即解决问题的步骤。
面向对象程序设计(object oriented programming,OOP)是将所有预处理的问题抽象为对象,并将相应的属性和行为封装起来,以提高软件的重用性、灵活性和扩展性。
现实世界中,对象就是客观存在的某一事物,如一个人、一辆自行车等。而面向对象的编程世界中,对象具有属性和行为两个特征,每个对象都有各自的属性和行为。而类是对这些具有共同特征的对象的概括、归纳和抽象表达。例如,将人抽象为“人”类,它具有名字、性别等属性,行走、吃饭等行为,那么具体的名字为“小明”“小红”的个体就是“人”类的对象,具体关系如图7-1所示。
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
面向对象的编程世界
1
图7-1 类和对象的关系
面向对象程序设计思想是把事物的属性和行为包含在类中。其中,事物的属性作为类的变量,事物的行为作为类的方法,而对象则是类的一个实例。因此,想要创建对象,需要先定义类。
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
PART 02
真实事物的抽象
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
类的定义
2.1
Python中定义类的语法格式如下。
class 类名:
类体
其中,class是Python的关键字,用于声明类;类名必须是合法标识符,通常是一个有意义的名称;类体定义类的内部实现,一般包括变量和方法的定义。
定义类时应注意以下几点。
(1)类名的首字母一般需要大写,如Car。
(2)类名后必须紧跟冒号。
(3)类体相对于class关键字必须保持一定的空格缩进。
例如,定义一个Person类,包含姓名属性和说话行为,可以用下面代码实现。
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
类的定义
2.1
class Person: #定义Person类
name = '小蓝' #定义姓名变量
def speak(self): #定义说方法
print('大家好!')
在上述代码中,使用class定义了一个名为Person的类,类中有一个name变量和一个speak()方法。从代码中可以看出,方法的定义格式和函数是一样的,主要区别在于,方法必须显式地声明一个self参数,且须位于参数列表的开头。self参数将在7.2.3节中详细介绍。
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
创建对象
2.2
对象名 = 类名()
Python中创建对象的语法格式如下。
创建对象后,可以使用它来访问类中的变量和方法,其语法格式如下。
对象名.变量名
对象名.方法名([参数])
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
创建对象
2.2
【例7-1】 创建对象,访问类中的变量和方法。
【运行结果】 程序运行结果如图7-2所示。
【参考代码】
class Person: #定义Person类
name = '小蓝' #定义姓名变量
def speak(self): #定义说方法
print('大家好!')
person = Person() #创建对象
person.speak() #调用类中的方法
print('我是{}'.format(person.name)) #访问类中的变量
图7-2 例7-1程序运行结果
单击此处编辑母版标题样式
单击此处编辑母版文本样式
第二级
第三级
第四级
第五级
self参数
2.3
在Python中,一个类可以生成无数个对象,当一个对象的方法被调用时,对象会将自身的引用作为第一个参数(即方法的self参数),传递给该方法。这样,Python就知道需要操作哪个对象的方法了。
带self参数的方法也称作实例方法,在类的实例方法中访问实例变量时,须以self为前缀,但在外部通过对象名调用实例方法时不需要传递该参数