Python精简入门学习之继承
-继承
我们在这里在略微的理一下继承,什么是继承?咱不搞花里胡哨的东西。简单来说就是懒,子类继承了父类的属性,此时子类就能直接使用父类的那个属性,从而不用再去新建相同的属性,你想要走点特色的属性就需要自己新建去完善属性了。
class People:
def sing(self):
print('唱')
pass
def jump(self):
print('跳')
pass
class Akun(People): # 此时Akun是子类继承了People类 拥有了People父类的属性唱跳属性。
def rap(self):
'''
子类独有的属性,完善自身的需求。
'''
print('rap')
pass
kunkun = Akun() # 具备了父类的唱,跳属性,还有自己的属性rap。
kunkun.sing()
kunkun.jump()
kunkun.rap()
-多继承
多继承顾名思义就是继承了多个父类。而且是有继承顺序的。
class Volleyball_coach:
def volleyball(self):
print('会打排球')
pass
class Basketball_coach:
def basketball(self):
print('会打篮球')
pass
class xiaoming(Volleyball_coach,Basketball_coach):# 因为小明有两个教练,所以不仅会打排球还会打篮球
pass
xm = xiaoming()
xm.volleyball()
xm.basketball()
-继承的执行顺序
继承循序是依次从左往右的寻找,有就使用没有就往后,最后都没有就报错。
class D(object):
def run(self):
print('D.run')
pass
pass
class C(D):
def run(self):
print('C.run')
pass
pass
class B(D):
pass
class A(B,C):
pass
a = A()
a.run()
print(A.__mro__) # _ _mro_ _可以依次显示继承顺序结构
在执行eat的方法时 查找方法的顺序是:
首先到A里面去找 如果A中没有 就继续去B类中去找 如果B中没有 就去C中找 如果C中没有找到就去D中去找 如果还没找到就会报错
A-B-C-D
-间接继承
class GrandFather:
def eat(self):
print('吃的方法')
pass
pass
class Father(GrandFather):
def eat(self): # 因为父类中已经存在这个方法,这里就是方法重写,将继承的方法覆盖了。
print('父亲吃海鲜')
pass
class Son(Father):
pass
son = Son()
print(Son.__mro__)
son.eat() # 此方法是从GrandFather继承过来的
网友评论