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不要急着关掉窗口,让我们可以多看一看画出来的结果。 mainloopturtle库中定义好的一个函数,下一节我们将了解函数这个概念。

需要注意的是,执行turtle.mainloop()之后Python不再再执行其他指令,所以必须放在程序的最后。

可以看到在屏幕正中央出现了一只三角形,不要怀疑,那就是我们的小海龟。

为什么创建了两只却只看到了一只?因为重合在一起了,下一节我们将移动小海龟,这样就能看见它们了。

Last updated