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!
      

     

  • 相关阅读:
    注册验证
    翻页加输入框
    php面向对象
    封装数据库
    浅谈BFC和haslayout
    总结JS面向对象
    总结(JS)
    转载6
    总结(5.30)
    总结(5.29)
  • 原文地址:https://www.cnblogs.com/dongmengze/p/9505229.html
Copyright © 2011-2022 走看看