第九章 特殊方法、属性和迭代器
9.1 准备工作
>>>__metaclass__=type #新式类(3.0版本不需要定义)
9.2 构造方法
与普通方法的不同:创建对象后,会立即调用构造方法。(无需再调用内部方法)
构造方法还可以传递参数,类名(参数)。
形式:__普通方法__(调用时不需要再调用此方法,直接调用下面的特性)
__init__方法是使用最多的一个。
9.2.1 重写一般方法和特殊的构造方法
继承:B调用实例的特性,若没有则会到它的超类中寻找。
重写:重写是继承机制的重要内容,对于构造方法尤其重要。
注:如果一个类的构造方法要被重写,则一定要调用超类里的构造方法。有两种
方法,调用超类构造方法的未绑定版本/使用super函数。
9.2.2 调用未绑定的超类构造方法
class 子类(超类):
def __init__(self)
超类.__init__(self)
self.新特性=…
绑定方法:在调用一个实例的方法时,该方法的self参数会被自动绑定到实例上,但如果直接调用类的方法,就没有实例会被绑 定,这称为未绑定方法。
9.2.3 使用super函数
class 子类(超类):
def __init__(self)
super(子类,self).__init__()
self.新特性=…
9.3 成员访问
除了__init__等特殊方法,还有许多规则类的方法。
9.3.1 基本的序列和映射规则
__len__(self)
__getitem__(self,key)
__setitem__(self,key,value)
__delitem__(self,key)
9.3.2 子类化列表、字典和字符串
从list、string、dict用super函数调用超类,来修改列表、字典、字符串实例。
9.5 属性
访问器方法:诸如getHeight()等,通过访问器定义的特性称为属性。