2.25 类
类(Class)是用来描述具有相同属性和方法的对象的集合。
它定义了该集合中每个对象所共有的属性和方法。
类是面向对象编程语言中最基本的概念。
对象是类的实例。
在Python中,我们使用class语句来创建一个新类,class之后为类的名称并以冒号“:”结尾。
具体格式如下:
和函数定义时类似,我们也可以在第一行放一个文档字符串,起到类的描述和帮助信息的作用。
class_suite由类成员、方法、数据属性组成。
下面我们来看一个例子:
我们定义了一个叫DeepLearner的类,我们通过class这个关键词进行定义,后面是类的名称DeepLearner,括号中的object是这个类所集成的对象类,然后是一个冒号“:”,第一行深红色的字就是我们前面提到的这个类的帮助文档。
下面定义了一个变量learnerCount,它的初始值为0。这个变量是这个类的属性,这个变量的值将在这个类中所有的实例之间共享。也就是说,不管你新建了多少个实例,它们访问到的是同一个变量。可以通过“类名.变量名”进行访问。
然后定义了一个__init__()方法,它是一种特殊的方法,是类的构造函数或者说初始化方法,每当创建了这个类的实例时,就会自动地调用这个方法。
类的方法和普通的函数有一个很大的区别在于它的参数。所有类的第一个参数都是self,它所代表的就是这个实例本身。后面其他的参数可以根据你的需要来定义。
__init__()方法中有三条语句。“self.name = name”代表在这个类中有一个叫name的属性,它的值是在构建一个新的实例的时候通过外面有一个叫name的参数把值传给它。下一条语句也是同样的道理。最后这条语句就是把learnerCount这个属性的值加一。
之后我们还定义了其他几个方法:getName()就是返回这个实例name的属性值,getSchoolname()就是返回这个实例schoolName的属性值,displayCount()就是打印出learnerCount的信息,displayLearner()就是打印出学习者的姓名以及学校名。
下面我们来看几个基于这个类的调用。
打印类的帮助文档信息:
实例化和调用:
我们用DeepLearner.learnerCount得到的值为2,因为我们创建了两个实例。
之后我们分别用两个对象调用了displayCount()方法,得到的结果是一样的,因为它们共享同一个learnerCount。
然后我们又分别调用了它们的getName()和getSchoolname()方法,打印出来的结果跟我们在实例化的时候所带进去的参数是一致的。
最后我们调用了它们的displayLearner()方法,打印出来的就是根据我们定义好的参数所涉及的全部信息。
> 示例代码
Last updated
Was this helpful?