2.1.2 对象
对象是Python中的一个十分基本的概念。在开始写第一句代码之前,我们先来了解什么是“对象”。
本节目标:
了解什么是对象,它与现实中的“对象”之间的相似处。
了解什么是类
初步掌握将现实中的物体抽象成“对象”的方法。
学会用
turtle
模块创建小海龟对象。
什么是对象、类
对象(Object)是来源于现实世界中“对象”的概念。
Learning By Reading 难度:★ 重要性:★★★★★
阅读材料的前几段(出现代码之前的段落),
了解对象、类、属性、方法。
以小海龟画图为例,小海龟便是对象。小海龟的颜色、形状、爬行速度等是它的属性。 小海龟的方法有前进、转弯等等。
对象是属性和方法的集合,Python中每个对象都属于一个“类”。类相当于一个创造对象的模板。 创建对象的过程可以抽象地描述为把属性存在内存中的过程。一个对象有了全部的属性和方法,也就被创造出来了。
类通常是根据代码的需求来设计的。比如有一个类,笔
,它的属性有颜色、粗细等,方法有“写”。 如果我们需要让有些笔(比如圆珠笔)可以转(转笔),有些笔(比如白板笔)因为体型方面的原因不能转,这时, 设计两个类圆珠笔
和白板笔
会比较合适。
在编程的过程中,我们可以把自己想象成这个虚拟世界的神明,我们要创造出小海龟们, 并给它们下达指令。
Learning By Thinking 难度:★★ 重要性:★★★★★
试着将自己熟悉的物体抽象成“对象”,说说它有哪些属性和方法。
抽象需要合理、实用。
教练指出学生的抽象中是否有不合适的地方。
如何创造对象
Learning By Doing 难度:★ 重要性:★★★★★
运行以下代码,观察结果。
以上代码中,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