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

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

  • 相关阅读:
    更改ORACLE_HOME_NAME
    Linux 查看裸设备大小
    Linux 日常操作
    Linux 高 wio 分析
    Linux 大页: HugePage 与transparent HugePage
    CentOS 8 配置本地YUM源
    MySQL 表压缩
    HIVE 处理json结构数据
    Emacs org-mode 2 文档结构
    CentOS 7 Oracle 19.3 单实例静默安装
  • 原文地址:https://www.cnblogs.com/pythonkids/p/7745775.html
Copyright © 2011-2022 走看看