初识继承
''' 继承问题引入: 如果在两个类里面,有大量重复的代码,是否可以写出一个更抽象的类,将两个类重复的地方写在一起(放公共代码) ''' class Base():#父类写不写括号,默认继承的都是object顶级父类 def __init__(self): print("我是初始化的base") def func(self): print("我是base") class A(Base): #括号里面写的父类的名字,A继承Base. pass a = A() #我是初始化的base,实例化时,触发父类初始化的方法. a.func() #字类继承了父类,我是base class Father(): def __init__(self,name,age): self.name = name self.age = age class Son(Father): def js(self): print("我叫%s,我今年%s岁."%(self.name,self.age)) s = Son("露西",27) #字类继承了父类,继承了父类的属性. s.js()#我叫露西,我今年27岁. # -------------继承搜索---------------------------------------------- # 访问类的属性与方法,首先会在自己里面去找,如果找不到,转到其父类进行查找,如果再找不到转到其父类的父类中查找 class GrandFather(): def play(self): print("我是爷爷") class Father(GrandFather): def lasr(self): print("我是爸爸") class Son(Father): def js(self): print("我是儿子") a = Son() a.play() #在Son该类中找不到paly方法,于是转到Son的父类Father类中去找,也找不到,于是转到Father的父类Grandfather类中去找. print(GrandFather.__bases__)#默认继承顶级父类object print(Father.__bases__)#继承GrandFather-(<class '__main__.GrandFather'>,) print(Son.__bases__)#继承Father-(<class '__main__.Father'>,)