Pythonの多重継承の深さ優先と幅優先

幅優先と深さ優先(関数を使用して、ルックアップの優先順位)

図1に示すように、古典的なクラス、多重継承の場合、深さ優先探索の意志に従って

クラスに新しいクラス、多重継承の場合は、幅優先探索に従います2、

クラシッククラスA、新しいクラス:クラスA(oobject)。しかし、のpython3クラスA、すなわちのpython3クラシック、デフォルトの継承オブジェクトを、キャンセルも新しいクラスです。

class D:
    def test():
        print("D")

class C(D):
    def test():
        print("C")

class B(D):
    def test():
        print("B")

class A(B,C):
    def test():
        print("A")

a=A()
a.test()

深度優先:Aクラス以下に示すように呼び出されたテスト機能は、テスト関数Aクラスの有無を見つけるために、その後、クラスBを見て、次にDを見つけ、最終的にクラスを見つけるC.

幅優先:以下に示すように呼び出されたテスト機能は、テスト関数Aクラスの有無を検索し、次にDをクラスBを見て、その後、クラスCを見つけ、最終的にクラスを見つけるAクラス

公開された24元の記事 ウォン称賛30 ビュー50000 +

おすすめ

転載: blog.csdn.net/yufen9987/article/details/87891436