zoukankan      html  css  js  c++  java
  • 类的继承查询策略:广度优先


    #类的继承方式:breadth first广度优先的查询策略,继承按照B——C——A的顺序
    注意:python2中经典类是按照深度优先来继承的;新式类是按照广度优先继承的
    pyhton3则完全按照广度优先来继承的
    ex1:
     1 class A(object):
     2     def __init__(self):
     3         print("A")
     4 class B(A):
     5     def __init__(self):
     6         print("B")
     7 class C(A):
     8     def __init__(self):
     9         print("C")
    10 class D(B,C):
    11     pass
    12 obj=D()
    View Code

    执行结果是打印B

    ex2:

     1 class A(object):
     2     def __init__(self):
     3         print("A")
     4 class B(A):
     5     pass
     6     # def __init__(self):
     7     #     print("B")
     8 class C(A):
     9     def __init__(self):
    10         print("C")
    11 class D(B,C):
    12     pass
    13 obj=D()
    View Code

    执行结果是打印C

    ex3:

     1 class A(object):
     2     def __init__(self):
     3         print("A")
     4 class B(A):
     5     pass
     6     # def __init__(self):
     7     #     print("B")
     8 class C(A):
     9     pass
    10     # def __init__(self):
    11     #     print("C")
    12 class D(B,C):
    13     pass
    14 obj=D()
    View Code

    执行结果是打印A

    同理:多继承的方法和这个原理相同,多继承中参数的次序是对子类的继承有影响的

  • 相关阅读:
    [恢]hdu 2203
    [恢]hdu 2089
    [恢]hdu 1597
    [恢]hdu 1239
    [恢]hdu 2141
    [恢]hdu 2152
    [恢]hdu 2078
    [恢]hdu 2304
    [恢]hdu 1799
    非金钱激励员工的108种手段 ,你一定要懂!
  • 原文地址:https://www.cnblogs.com/pythonkids/p/7745775.html
Copyright © 2011-2022 走看看