Python精简入门学习(十七)

作者: 码市冲冲冲 | 来源:发表于2021-04-16 20:33 被阅读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继承过来的
    

    相关文章

      网友评论

        本文标题:Python精简入门学习(十七)

        本文链接:https://www.haomeiwen.com/subject/apyelltx.html