Day29.继承介绍
1.继承介绍_什么是继承_继承格式___bases__用法
# 1、什么继承? # I:继承是一种创建新类的方式,新建的类可称为子类或派生类,父类又可称为基类或超类,子类会遗传父类的属性 # II:需要注意的是:python支持多继承 # 在Python中,新建的类可以继承一个或多个父类 # 继承格式 class Parent1: # 类后面加上(object),可以兼容python2解释器 x = 111 class Parent2: pass class Sub1(Parent1): # 单继承 pass class Sub2(Parent1, Parent2): # 多继承 pass # __bases__查看继承的父类 print('继承的格式,及__bases__查看继承的父类'.center(40, '-')) print(Sub1.__bases__) print(Sub2.__bases__)
2.继承介绍_python2和python3类继承的区别
# 继承格式 class Parent1(object): # 类后面加上(object),可以兼容python2解释器 x = 111 class Parent2(object): pass class Sub1(Parent1): # 单继承 pass class Sub2(Parent1, Parent2): # 多继承 pass print('ps2:在python3中没有继承任何类,会默认继承object类,所以python3中所有的类都是新式类'.center(60, '-')) print(Parent1.__bases__) print(Parent2.__bases__)
3.继承介绍_单继承案例,子类调用父类中的属性或方法
# 继承格式 class Parent1(object): # 类后面加上(object),可以兼容python2解释器 x = 111 class Parent2(object): pass class Sub1(Parent1): # 单继承 pass class Sub2(Parent1, Parent2): # 多继承 pass print('ps2:在python3中没有继承任何类,会默认继承object类,所以python3中所有的类都是新式类'.center(60, '-')) print(Parent1.__bases__) print(Parent2.__bases__)
4.继承介绍_单继承和多继承案例以及多继承的优缺点
# III:python的多继承 # 优点:子类可以同时遗传多个父类的属性,最大限度地重用代码 # 缺点: # 1. 违背了人的思维习惯:继承表达的是一种什么'是'什么的关系,例:子类Sub2是父类Parent1的,也是父类Parent2的 # 2. 代码可读性会变差 # 3. 不建议使用多继承,又可能会引发菱形问题,扩展性变差,如果真的涉及到一个子类不可避免地要重用多个父类的属性,应该使用Mixins '''单继承''' class A: x = 111 class B(A): pass class C(B): pass class D(C): pass print('单继承案例'.center(40, '-')) print(D.x) '''多继承''' class A: x = 111 class B: y = 222 class C: z = 333 class D(A, B, C): pass print('缺点2,多继承,代码可读性变差'.center(40, '-')) print(D.x, D.y, D.z)