• 【问题】多重继承时,super函数只初始化继承的第一个类,不初始化第二个类。


    class A(object):
        def __init__(self):
            print("init class A")
    
    class B(object):
        def __init__(self):
            print("init class B")
    
    class C(object):
        def __init__(self):
            print("init class C")
            super(C, self).__init__()
    
    class D(object):
        def __init__(self):
            print("init class D")
            super(D, self).__init__()
            
    class E(A, B):
        def __init__(self):
            print("init class E")
            super(E, self).__init__()
    
    class F(C, D):
        def __init__(self):
            print("init class F")
            super(F, self).__init__()
    
    if __name__ == '__main__':
        e = E()
        f = F()

    运行结果:

    init class E
    init class A
    init class F
    init class C
    init class D

    问题:class A和class B没有使用super函数,多重继承时,只初始化继承的第一个类,不初始化第二个类。

  • 相关阅读:
    Angular2+学习第1篇 简介
    JS:ES5数组基本操作
    git常用操作命令
    URL-Routing
    uid-datepicker
    元素隐藏 css
    Angular2+学习第2篇 cli 环境搭建过程
    DRF 07
    DRF小练习 04
    DRF小练习 02
  • 原文地址:https://www.cnblogs.com/risunlee/p/12317867.html
Copyright © 2020-2023  润新知