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

    class A:
        def save(self):
            print("save in a")
    
        def pre_save(self):
            print('pre save in a')
    
    
    class B(A):
        def save(self):
            self.pre_save()  # 注3
            print('save in b')
            super().pre_save()
            super().save()
    
        def pre_save(self):
            print("pre_save in b")
    
    
    class C(B):
        def pre_save(self):
            print('pre save in c')
            super().pre_save()
    
        def save(self):
            print('save in c')
            self.pre_save()  # 注1
            super().save()  # 注2
    
    
    
    
    class D(C):
        pass
    
    
    if __name__ == '__main__':
        d = D()
        d.save()
    
    # C.pre_save 入栈,开始级联调用
    # save in c
    # pre save in c
    # pre_save in b
    # 注1, 到此处为止,注1函数运行完毕,
    # 下面开始 执行 注2 函数, 重新开始了一个栈元素,开始搜索调用 pre_save 函数,这个时候,重新从 实例对象 的方法中 寻找,就找到了 C.pre_save
    # pre save in c
    # pre_save in b
    # save in b
    # pre save in a
    # save in a
    
    
    
    
    
  • 相关阅读:
    Python多进程编程
    Cython学习
    cProfile——Python性能分析工具
    Python垃圾回收机制:gc模块
    新纪元
    类模版的static成员
    我的2015plan
    Linux之sed
    getenv, _wgetenv
    vs2010下如何调试带输入参数的程序
  • 原文地址:https://www.cnblogs.com/jijizhazha/p/13415970.html
Copyright © 2011-2022 走看看