2.1.2 对象
对象是Python中的一个十分基本的概念。在开始写第一句代码之前,我们先来了解什么是“对象”。
本节目标:
了解什么是对象,它与现实中的“对象”之间的相似处。
了解什么是类
初步掌握将现实中的物体抽象成“对象”的方法。
学会用
turtle模块创建小海龟对象。
什么是对象、类
对象(Object)是来源于现实世界中“对象”的概念。
Learning By Reading 难度:★ 重要性:★★★★★
阅读材料的前几段(出现代码之前的段落),
了解对象、类、属性、方法。
以小海龟画图为例,小海龟便是对象。小海龟的颜色、形状、爬行速度等是它的属性。 小海龟的方法有前进、转弯等等。
对象是属性和方法的集合,Python中每个对象都属于一个“类”。类相当于一个创造对象的模板。 创建对象的过程可以抽象地描述为把属性存在内存中的过程。一个对象有了全部的属性和方法,也就被创造出来了。
类通常是根据代码的需求来设计的。比如有一个类,笔,它的属性有颜色、粗细等,方法有“写”。 如果我们需要让有些笔(比如圆珠笔)可以转(转笔),有些笔(比如白板笔)因为体型方面的原因不能转,这时, 设计两个类圆珠笔和白板笔会比较合适。
在编程的过程中,我们可以把自己想象成这个虚拟世界的神明,我们要创造出小海龟们, 并给它们下达指令。
Learning By Thinking 难度:★★ 重要性:★★★★★
试着将自己熟悉的物体抽象成“对象”,说说它有哪些属性和方法。
抽象需要合理、实用。
教练指出学生的抽象中是否有不合适的地方。
如何创造对象
Learning By Doing 难度:★ 重要性:★★★★★
运行以下代码,观察结果。
import turtle t1 = turtle.Turtle() t2 = turtle.Turtle() turtle.mainloop()
以上代码中,import turtle告诉解释器我们需要使用小海龟画图的模块,turtle就是模块的名字。(上一节提到了import的过程,还记得吗?) 使用模块中的任何东西,格式都是moduleA.xxx,其中moduleA是模块名,xxx是要使用的类/常量/函数的名字。 比如turtle.Turtle指的是turtle库中的Turtle类。在Python中,不管是类、常量或是其他东西,都是module.xxx的格式。
注意区分turtle库和turtle.Turtle类。
t1 = turtle.Turtle()创建了一个Turtle(小海龟)对象,名字是t1。
其中t1 =将等号后面的值赋给t1,就像数学中说令 x = 5一样。 而()在这里的意思是“创造Turtle类的对象”。 ()符号来源于数学中的函数,就像数学中有f(0)一样。
t2 = turtle.Turtle()创建了一个Turtle对象,名字是t2。
turtle.mainloop()是一行神奇的代码,如果没有这行代码,程序运行完t2 = turtle.Turtle()之后会把小海龟窗口关掉(试一试!)。 (如果是在Spyder中运行,窗口会失去响应。) 所以这行代码的作用就是让Python不要急着关掉窗口,让我们可以多看一看画出来的结果。 mainloop是turtle库中定义好的一个函数,下一节我们将了解函数这个概念。
需要注意的是,执行turtle.mainloop()之后Python不再再执行其他指令,所以必须放在程序的最后。
可以看到在屏幕正中央出现了一只三角形,不要怀疑,那就是我们的小海龟。
为什么创建了两只却只看到了一只?因为重合在一起了,下一节我们将移动小海龟,这样就能看见它们了。
Last updated