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

    • 多继承下,查找父类方法的逻辑

      1. 左侧优先
      2. 左侧路径到最后
      3. 有同一个基类时,基类最后执行
      class Base:
          pass
      
      class F1:
          def f1(self):
              pass
          
      class F2(Base):
          def f2(self):
              pass
          
      class F3(F1):
          def f3(self):
              pass
          
      class F4(F2):
          def f4(self):
              pass
          
      class Son(F4, F3):
          pass
      
      obj = Son()
      obj.f1()
      
      #左侧优先
      #左侧路径到最后
      F4 --> F2 --> Base
      F3 --> F1
      
      class Base:
          pass
      
      class F1(Base):
          def f1(self):
              pass
      
      class F2(Base):
          def f2(self):
              pass
      
      class F3(F1):
          def f3(self):
              pass
      
      class F4(F2):
          def f4(self):
              pass
      
      class Son(F4, F3):
          pass
      
      obj = Son()
      obj.f1()
      
      #有同一个基类时,基类最后执行
      F4 --> F2 
      F3 --> F1 
      Base
      
      class F1:
          def f1(self): 
              #self是Son的对象,所以调用f4()方法的时候,是重新以左侧优先、左侧路径到最后的逻辑开始查找的
              self.f4()
      
          def f4(self):
              print('there!')
      
      class F2:
          def f2(self):
              pass
      
      class F3(F1):
          def f3(self):
              pass
      
      class F4(F2):
          def f4(self):
              print('here!')
      
      
      class Son(F4, F3):
          pass
      
      obj = Son()
      obj.f1()
      
      F4 --> F2
      F3 --> F1
      F4 --> 打印here!
      

     

  • 相关阅读:
    easyui datagrid fit 属性
    jQuery outerHeight() 方法
    从文件夹输入数据到控制台程序 c方式
    排序算法
    泛型算法
    string、char[]、char*、const char* 相互转换
    sizeof
    容器 forward_list
    sort
    printf & sprintf
  • 原文地址:https://www.cnblogs.com/dongmengze/p/9505229.html
Copyright © 2011-2022 走看看