多重継承サプリメント

オブジェクト指向の多重継承

1. __mro__ c3のアルゴリズムと説明
     1)__mro__ 
        Pythonのクラス多重継承機能、継承が最初のプロパティやメソッドを呼び出します見えにくい、複雑すぎる場合。
簡単かつ迅速に継承して順序を確認するためには、このクラスを呼び出すために取得する方法を__mro__することができます。
     2 )C3アルゴリズム
    SS A(オブジェクト):
        合格
    
    クラスB(A)を:
         合格
    
    クラスC(B)が:
         合格
    
    クラスD(オブジェクト):
         合格
    
    クラスE(D、C):
         合格
    
    クラスF.(オブジェクト):
         合格
    
    クラスG(F):
         パス
    
    クラスH(C、G):
         パス
    
    クラスはFoo(E、H):
         合格
    
    
    #の印刷(E .__ mro__)
    #1 印刷(H .__ mro__)
    "" " 
    L(フー+ L(E)+ L(H))
    
    L(E)= E、D、C、B、A、オブジェクト
    L(H )= H、C、B、A、G、F.、オブジェクト
    
    はFoo =(オブジェクト)+(G、F.、オブジェクト)
    はFoo、E、D、H、C、B、A、G、F.、オブジェクト
    "" " 
    印刷(フー・。__mro__ 

 2 クラシックと新しいクラス。
    左右見つける最初見つける。
        クラスA(オブジェクト):
             渡し
    
        クラスB(オブジェクト):
             DEF F1(自己):
                 印刷' B ' 
    
        クラスC( 、B):
             合格
    
        OBJ =C()
        obj.f1()
    
    クラシックと新しいカテゴリB。
        PY2:
            クラシック:
            新しいクラス:彼らや彼らの前任者がいる限り、誰かがオブジェクトを継承しているとして、そのような新しいクラスであれば
        PY3:
            新しいクラス
            
        クラシックと新しいクラスメンバーの配列が同じではない。見つける
            クラシック、一方向(深さ優先)へ。
            新しいクラス、C3アルゴリズム(C3のpython2.3更新アルゴリズム)
            
                はFoo +(C、D、F G)+(G 、D、G、Wである)+ (I、G、D、Gは、W)は
                    
                FOO、
                    比較第一ヘッダー及び他のエピトープを得ることは
                        離れて存在していない
                        存在する場合、放棄し、次いで第2のテーブルを取得しますヘッダは再びと比較することで、テーブルのもう一方の端を見て
                
        、短答、
            古典的な、(深さ優先)への一方通行
            のルートを残す。(C3科学アルゴリズム)、新しいクラスを
     
        注意:
            スーパー__mro__は、実行の順序に従うことです

 

おすすめ

転載: www.cnblogs.com/kangqi452/p/11617539.html