一、继续的概念:
- 子类 拥有 父类 的全部 方法 和 属性
- 子类 继续自 父类,可以直接 享受 父类中已经封装好的方法,不必要再次开辟
- 子类 中应该根据 职责,封装 子类特有的 属性和方法
二、继续的语法结构:
class 类名(父类名): pass三、继续的使用示例:
# 父类class Role: def __init__(self, name, weapon): self.name = name #self 为实例自己的名称 self.weapon = weapon #self 为实例自己的名称 def show_me(self): #self 为实例自己的名称 print('我是%s,我用的武器是%s' % (self.name, self.weapon))# 子类1class Warrior(Role): def attack(self, target): #子类Warrior界说自己的方法 print('与%s近身肉搏' % target)# 子类2class Mage(Role): def attack(self, target): #子类Mage界说自己的方法 print('远程打击%s' % target)if __name__ == '__main__': lb = Warrior('吕布', '方天画戟 ') km = Mage('孔明', '羽扇') lb.show_me() km.show_me() lb.attack('张飞') #子类的对象调用自己的方法attack() km.attack('曹操')四、多重继续:
- Python 允很多重继续,即:一个类可以是多个父类的子类,子类可以拥有全部父类的属性
- 在使用方法时,python有自己的查找序次:自下向上,自左向右(就近原则)
五、多重继续的语法结构:
class 类名(父类1,父类2,父类3...): pass六、多重继续使用示例
class A: def func1(self): print('A func') def func4(self): #类A中,包罗同样的方法名func4() print('A func4')class B: def func2(self): print('B func') def func4(self): #类B中,包罗同样的方法名func4() print('B func4')class C(A, B):# 多重继续A和B def func3(self): print('C func')if __name__ == '__main__': c1 = C() c1.func1() c1.func2() c1.func3() c1.func4()[root@localhost xxx]# python3 multi_extend.pyA funcB funcC funcA func4 # 就近原则先打印A类中的func4 |