第七章 类与可口可乐
7.1 定义一个类
例如:class CocaCola:
formula = ['caffeine','sugar','water','soda']
使用 class 来定义一个类,就如同创建函数时使用的 def 定义一个函数一样简单,接着你可以看到缩进的地方有一个装载着列表的变量 formula
,在类里面赋值的变量就是类的变量,而类的变量有一个专有的术语,我们称之为类的属性(Class Atrribute)
7.2 类的实例化
coke_for_me = CocaCola()
在左边我们创建一个变量,右边写上类的名称,这样看起来很像是赋值的行为,我们称之为类的实例化
7.3 类属性引用
在类的名字后面输入 .
,IDE 就会自动联想出我们之前在定义类的时候写在里面的属性,而这就是类属性的引用(attribute references)。
类的属性会被所有类的实例共享,所以当你在类的实例后面再点上 .
,索引用的属性值是完全一样的
7.4 实例属性
通过 object.new_atrr
的形式进行一个赋值,于是我们就得到了一个新的实例的变量,实例的变量就是实例变量,而实例变量有一个专有的术语,我们称之为实例属性(Instance Atrribute)
7.5 实例方法
类的实例可以引用属性,但我们更早了解到的是类的实例可以使用方法这件事(见第三章:字符串的方法)。方法就是函数,但我们把这个函数称之为方法(Method)。方法是供实例使用的,因此我们还可以称之为实例方法(Instance Method)
7.6 更多参数
和函数一样,类的方法也能有属于自己的参数
7.7 魔术方法
__init()
的神奇之处就在于,如果你在类里定义了它,在创建实例的时候它就能帮你自动地处理很多事情
7.8 类的继承
Python 中属性的引用机制是自外而内的,当你创建了一个实例之后,准备开始引用属性,这时候编译器会先搜索该实例是否拥有该属性,如果有,则引用;如果没有,将搜索这个实例所属的类是否有这个属性,如果有,则引用,没有那就只能报错了