通过继承,新类可以获得现有类的属性和方法。新类可以称作子类或者派生类,被继承的现有的类称作父类或者超类。
在子类(派生类)中,可以定义新的属性和方法,从而完成对父类(超类)的扩展。
1.可以通过继承来定义子类的格式:
class 类名(父类名):
子类中的语句
2.定义子类的属性和方法:
python中允许在子类中定义自己的属性和方法。如果子类定义的属性和方法于父类的属性和方法同名,则子类实例对象调用子类中定义的属性和方法。Python允许在子类方法中通过类对象直接调用超类的方法。
方法重载:用子类的方法覆盖父类的方法。
3.调用超类的构造函数:
在使用构造函数实例对象进行初始化时,可以在子类的构造函数中调用超类的构造函数。
class animal: #定义父类
def __init__(self,a):
self.animal_data = a
class cat(animal): #定义子类
def __init__(self,a,b): #定义子类的构造函数
self.cat_data = a
animal.__init__(self,b) #调用父类构造函数
c = cat("吃",20) #创建子类实例对象
c.animal_data #显示继承属性
c.cat_data #显示子类的自定义属性
4.多继承:
多继承:指子类可以同时继承多个父类。如果父类中存在同名的属性或方法,Python会按照从左到右的顺序在父类中搜索方法。
5.索引和分片重载:
与索引和分片有关的重载方法包括: __ getitem __ __ setitem __ __ delitem __
__ getitem __ 在实例对象执行索引、分片或for迭代时,调用该方法。
__ setitem __ 再通过赋值语句给索引或分片赋值时,调用该方法,实现对序列对象的修改。
__ delitem __ 该方法重载del运算,即删除索引或分片。