一.继承初体验
父类:
class ParentClass1:
pass
class ParentClass2:
pass
子类:
class SubClass(ParentClass1):
pass
继承多个子类:
class SubClass2(ParentClass1, ParentClass2):
pass
查看继承的父类:__bass--,是类的属性,用来查找当前类的父类.
print(SubClass1.--bases--)
print(SubClass2.--bases--)
二.寻找继承关系
先抽象(举例):
奥巴马--人类--动物类
麦兜--猪类-- 动物类
小丁丁-- 狗类--动物类
特征:鼻子眼睛;技能吃喝拉撒
再继承:
奥巴马对象-- 调用人类-- 继承动物类
麦兜-- 调用猪类-- 继承动物类
小丁丁-- 调用狗类-- 继承动物类
继承关系:
对象是特征与技能的结合体.
类是一系列对象相同的特征与技能的结合体.
继承是一系列类相同的特征与技能的集合体.
三.继承背景下对象属性查找顺序
1.对象查找属性会先从对象的名称空间中查找;
2.若对象没有,则会去类里面找;
3.若当前类是子类,并且没有对象找的属性,会去父类中查找(若都没有,则报错);
注意: 对象查找属性,若子类有, 不管父类有没有,以子类的为准.
四.派生
派生指的是子类继承父类的属性,并且派生出新的属性.
子类派生出新的属性,若与父类的属性相同,则以子类的为准.
继承是谁与谁的关系,指的是类与类的关系,子类与父类是从属关系
五.子类派生出新的属性,并重复父类的属性
子类派生出新的属性,若与父类的属性相同,则以子类的为准.
六.新式类与经典类(了解)
python2中才会有新式类和经典类之分.
python3中,所有的类都是新式类.
新式类: 继承object的类都称之为新式类.python3 中,子类不继承自定义的类,默认继承object.
经典类: 在python2中,凡是没有继承object的都是经典类.
mro(): 属于object--> type的函数,用来查看之前的继承顺序,在多继承的情况下.