• Python类(三)-多继承的区别


    多继承的有两个方式,一个是广度优先,一个是深度优先
    Python2中经典类按深度优先,新式类按广度优先
    Python3中经典类和新式类都按广度优先

    # -*- coding:utf-8 -*-
    __author__ = "MuT6 Sch01aR"
    
    class A():
        def __init__(self):
            print('A')
    
    class B(A):
        def __init__(self):
            print('B')
    
    class C(A):
        def __init__(self):
            print('C')
    
    class D(B,C):
        pass
    
    D()
    

    D继承了B,C

    B,C分别继承了A

    第一级为A,第二级为B和C(左边的优先),第三级为D

    首先在Python3环境下运行,看看结果

    首先继承了B,把B中内容改为pass,运行

    D继承了C,再把C中内容改为pass,运行

    D最后继承了A

    可见广度优先的顺序为:B->C->A,即先同一级,再上一级

    再在Python2环境中运行,看看是什么情况

    首先是B,把B中内容改为pass,运行

    D继承了A,把A中内容改为pass,运行

    D最后继承了C

    深度优先的继承顺序为:B->A->C,即先上一级,再同一级

  • 相关阅读:
    爱奇艺首页导航轮播特效
    闭包的应用
    时间日期Date类型
    php连接数据库
    封装cookie.js、EventUtil.js、
    时间日期格式
    mysql数据库修改密码
    jquery选择器的使用
    用js完成blog项目
    Hibternate框架笔记
  • 原文地址:https://www.cnblogs.com/sch01ar/p/8360977.html
Copyright © 2020-2023  润新知