类的方法

类的方法

实现类的方法非常简单,只需要将函数写在类模板的内部即可,而且由于它写在内部,因此可以直接访问属性变量,不过需要注意的是要绑定在self上。

既然我们创建的实例里有自身的数据,如果想访问这些数据,就没必要从外面的函数去访问,可以在Person类内部去定义这样一个访问数据的函数,这样就把“数据”给封装起来了。这些封装数据的函数是和Person类本身关联起来的,我们称之为类的方法。此时,我们将print_info()函数的参数类型由原来的Person改为self即可,并放在class Person的定义之中,这样print_info()函数就成为类的方法,可以直接对属性name和gender进行操作。

这样一来,对象可以直接使用方法,与访问自己属性的方式相同:

运行结果是:

总之,类是创建实例的模板,而实例则是一个个具体的对象,各个实例拥有的数据都互相独立,互不影响;方法就是与实例绑定的函数,和普通函数不同,方法可以直接访问实例的数据;通过在实例上调用方法,我们就可以直接操作对象内部的数据,而无须知道方法内部的实现细节。和静态语言不同,Python允许对实例变量绑定任何数据,也就是说,对于两个不同的实例变量,虽然它们是同一个类的实例,但拥有的变量名称可能不同:

小P 说一说

我是一个“类”,要用class;不是一棵草,不用grass。

我有名也有姓,可惜不能用中文。

我生来非虚无,函数__init__初始化,赋予血与肉(属性)。

设计新函数,给我以能力(方法)。

“类”是框架,“对象”是实例。

由“类”生“对象”,由“一”生“万物”。

万物有相似,其实各不同。