python小课——零基础入门——学习笔记大数据 爬虫Python AI Sql

Python精简入门学习(十七)

2021-04-16  本文已影响0人  码市冲冲冲

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继承过来的
上一篇下一篇

猜你喜欢

热点阅读