类class是面向对象编程oop的产物,class的定义相当于包括属性和方法。

属性是一些固有的,一般不经常变化的性质,比如身高,体重,几乎每个物体都有,不管活的,还是死的。

属性的变化,是指值的变化,比如今天多吃了碗饭,体重多了5kg;昨天饿了一天,体重少了2kg等等。

方法可以当作是行为,比如这个物体会走,会跑,会吃饭,会喝水,会睡觉等等。方法只能依靠类或对象调用,就是实例化名.方法名(),

self代表着实例化的指向,如上图所示,不管是类定义中,还是实例化中,都是指向同一个地址。

当第二个实例出现的时候,类定义中的指针会随着实例的变化而转移。

类的属性不光可以在定义中出现,也可以在实例化的过程中添加。

这样的程序代码,可以明显感受到,类定义是空的,可是产生的实例化属性很可能千差万别。

也可以把打印的三个属性封装成方法,加上换行\n转义字符,一句话就能完成。

封装之后,每个实例都可以使用这个方法,这就是封装的好处。

类定义中虽然没有定义任何属性,但是方法中却使用了若干个属性。

这个时候,你在代码执行过程中,赋类实例化的属性值时,可千万别少。

PS:本文代码基于Windows 10,Python 3.10.4。