zoukankan      html  css  js  c++  java
  • 多继承

    钻石继承法 A

    D继承的B和C,B和C继承的A

    #继承  单继承==减少了代码的重复性
    #继承表达的是一种 子类是父类的关系


    #钻石继承
    # class A:
    # def func(self):print("A")
    # class B(A):
    # def func(self): print("B")
    # class C(A):
    # def func(self): print("C")
    # class D(B,C):#从做到右一个一个找,如果左边没有的话,不会去左边的上一级去找,会先看右边有没有,右边没有的话,会去上一级找
    # pass
    # d=D()
    # d.func()




    #六边形继承
    # class F:
    # def func(self):
    # print("F")
    # class A(F):
    # def func(self):print("A")
    # class B(A):
    # def func(self): print("B")
    # class E(F):
    # pass
    # class C(E):
    # def func(self): print("C")
    # class D(B,C):#从做到右一个一个找,如果左边没有的话,不会去左边的上一级去找,会先看右边有没有,右边没有的话,会去上一级找
    # pass
    # d=D()
    # print(D.mro())#mro方法可以查他的继承方式,mor只在新式类中使用

    #新式类的继承方式,遵循的是广度优先的方法
    #经典类中 深度优先
    class A(object):
    def func(self):
    print("A")
    class B(A):
    def func(self):
    super().func()
    print("B")
    class C():
    def func(self):
    super().func()
    print("C")
    class D(B,C):#从做到右一个一个找,如果左边没有的话,不会去左边的上一级去找,会先看右边有没有,右边没有的话,会去上一级找
    def func(self):
    super().func()
    print("D")
    d=D()
    d.func()
    print(D.mro())#

    #单继承

     #先抽象,几个类之间的代码抽象出来成为父类

     

     #子类没有自己的名字,之类可以使用父类的方法和属性

     #子类如果自己有的话,一定先使用自己的

     #在类中使用self的时候,一定要先看清楚self指向谁

    #多继承

     #新式类和经典类

     #多继承寻找名字的顺寻:

        新式类广度优先

          #在新式类中有一个mro方法,可以查看广度优先的顺序

          #在python3中有一个super方法,可以查广度优先的顺序

        经典类广度优先

  • 相关阅读:
    Global.asax的Application_BeginRequest实现url重写无后缀的代码
    Windows 2008驱动安装失败的原因及解决方法
    解决win8.1电脑无法安装手机驱动问题
    适用于Win8的Office2003_SP3精简版集成各类补丁+兼容包
    CSS 文本缩进,行间距
    自动换行后缩进怎么做(CSS)?(可用于 Li y 元素的排版)
    ApkTool反编译和重新打包
    sql server 2005 32位+64位、企业版+标准版、CD+DVD 下载地址大全
    【Lua】Lua中__index与元表(转)
    【VS2012】项目文件夹管理
  • 原文地址:https://www.cnblogs.com/648071634com/p/11884656.html
Copyright © 2011-2022 走看看