2.25 类

类(Class)是用来描述具有相同属性和方法的对象的集合。

它定义了该集合中每个对象所共有的属性和方法。

类是面向对象编程语言中最基本的概念。

对象是类的实例。

在Python中,我们使用class语句来创建一个新类,class之后为类的名称并以冒号“:”结尾。

具体格式如下:

图2-134

和函数定义时类似,我们也可以在第一行放一个文档字符串,起到类的描述和帮助信息的作用。

class_suite由类成员、方法、数据属性组成。

下面我们来看一个例子:

图2-135

我们定义了一个叫DeepLearner的类,我们通过class这个关键词进行定义,后面是类的名称DeepLearner,括号中的object是这个类所集成的对象类,然后是一个冒号“:”,第一行深红色的字就是我们前面提到的这个类的帮助文档。

下面定义了一个变量learnerCount,它的初始值为0。这个变量是这个类的属性,这个变量的值将在这个类中所有的实例之间共享。也就是说,不管你新建了多少个实例,它们访问到的是同一个变量。可以通过“类名.变量名”进行访问。

然后定义了一个__init__()方法,它是一种特殊的方法,是类的构造函数或者说初始化方法,每当创建了这个类的实例时,就会自动地调用这个方法。

类的方法和普通的函数有一个很大的区别在于它的参数。所有类的第一个参数都是self,它所代表的就是这个实例本身。后面其他的参数可以根据你的需要来定义。

__init__()方法中有三条语句。“self.name = name”代表在这个类中有一个叫name的属性,它的值是在构建一个新的实例的时候通过外面有一个叫name的参数把值传给它。下一条语句也是同样的道理。最后这条语句就是把learnerCount这个属性的值加一。

之后我们还定义了其他几个方法:getName()就是返回这个实例name的属性值,getSchoolname()就是返回这个实例schoolName的属性值,displayCount()就是打印出learnerCount的信息,displayLearner()就是打印出学习者的姓名以及学校名。

下面我们来看几个基于这个类的调用。

打印类的帮助文档信息:

图2-136

实例化和调用:

图2-137

我们用DeepLearner.learnerCount得到的值为2,因为我们创建了两个实例。

之后我们分别用两个对象调用了displayCount()方法,得到的结果是一样的,因为它们共享同一个learnerCount。

然后我们又分别调用了它们的getName()和getSchoolname()方法,打印出来的结果跟我们在实例化的时候所带进去的参数是一致的。

最后我们调用了它们的displayLearner()方法,打印出来的就是根据我们定义好的参数所涉及的全部信息。

> 示例代码

Last updated

Was this helpful?