什么是类
大家可能听说过Python是一个面向对象(object)的编程语言,当然这个对象不是那个对象。更准确的来说,是因为Python里面有一种叫做类(class)的结构,Python可以实现整齐的编码架构。现在给大家介绍这个神奇的类。和我们之前学习的字典类似,类里面存储这一些函数以及数据,然后可以通过某种方式来访问类里面的函数和数据;反过来,类里面的函数和数据构成了类的主体。下面我们通过一个例子来学习类:
我们建立了一个叫做Student的类,看起来还是有些陌生和复杂。里面有两个函数,第一个函数__init__()看上去挺奇怪的,其实你可以理解成它是每一个类的标配,负责初始化类中的固定元素。比如对于一个学生,其固有属性包括了学生的学号(id)以及学生的名字,有了这两个信息,我们基本可以确定这个学生了。其中self变量起到的作用就是记录和传递我们定义的两个属性id和name。第二个函数,大家比较熟悉了,目的是打印出来学生的姓名和学号,这个函数接收在__init__()中定义好的self,然后把其中的信息打印出来。
当我们定义好了Student这个类之后,我们给Harry同学建立了一个实例,学号是1212,名字叫做Harry Potter。其实在第八行代码完成之后如果你选择运行程序,你是看不到屏幕中打印出来Harry同学的信息。而只有通过第九行代码调用出来infor()函数,我们才能看到打印信息。从这里我们可以看出来,在实例化一个类的时候,也就是第八行代码,代码只会运行__init__()函数,而不会运行infor()函数。
运行结果:
概念和解释
其实对于第一次接触类以及对象这些东西的人来说,短时间理解可能是比较困难的,我们在练习代码的时候也需要理清楚相关概念:
(1)对象(object):通过类定义的数据结构实例。这个概念根植于类的数据以及其实例化,比较抽象,大家可以在学习的过程中慢慢思考。
(2)实例化(instance):创建一个类的实例,类的具体对象。就像我们在第一节中定义了Student这个类,而给Harry同学建立一个Student的类,就是一个实例化操作。
(3)def:在类里边定义函数的方法。这个同我们一般意义上定义函数是一样的。
(4)self:指被访问的对象或者实例的一个变量。Self作为类中的一个独特存在,代表类的实例,用于存储类中的数据和方法。
练习题
1,在__init__()中加入一个print(self),看看它是什么时候会被执行,以及执行结果。
2,在infor(self)中加入一个print(self),看看它是什么时候会被执行,以及执行结果。
3,定义一个关于水果的类,里面存储水果的颜色,价格等等,并用具体的水果实例化。