オブジェクト指向のpythonの三つの特徴 - 継承

継承の場合
#は、クラス1、クラス小さい大きいクラスコンポーネントが良好と組み合わせて、必要な場合の間で有意に異なる場合、2クラス間の同じ機能の多くを提供しますこれらの機能は共通の基底クラス、継承良くする


クラスお父さん:

    これは私の父のようである
    マネー = 10 DEFの__init__ (セルフ、名):
         印刷パパ
        self.name = 名前のDEFのhit_son(セルフ):
         印刷%Sは息子を再生している%をself.name)クラス息子(お父さん):
    マネー = 10000000
     親クラスは、プロパティ属性をオーバーライドするように、サブクラスは、データ親クラスのプロパティ、または同じ名前の属性があり、何の優先順位は、親クラスのメソッドを呼び出していないだろうとき、子クラス

     

    



DEFの __init__ (セルフ、名前、年齢): self.name = 名前 self.age = 年齢 DEFのhit_son(セルフ): 印刷" クラスの息子から" 、self.name) 印刷(Son.money) Son.hit_son( ) #の印刷(お父さん.__ dict__に) #の印刷(息子.__ dict__に) S1 =息子( "TANG") #印刷(s1.name) 印刷(s1.money) s1.hit_son() 今サブクラスを見て独自のinitメソッドの S1 =息子(" アレックス""18 " s1.hit_son() 印刷(Son.money) 印刷(Dad.money)




基底クラスのサブクラスを使用して#Abcのモジュールの実装が実装しなければなりません
ABCのインポート
#インタフェースの継承

クラスAll_file(= abc.ABCMetaメタクラス):
abc.abstractmethod @

読む(自己)DEF:
渡し

abc.abstractmethod @
書き込み(セルフ)DEF:
パス


#を:の定義:インタフェース機能、インターフェイスの継承であります基底クラスは、それらをサブクラスに基底クラスの機能に、独自のメソッドを定義するための基本クラスは、彼が、基本クラスの実装しなければならないメソッド継承する
基底クラスのメソッドを実装しなければならないサブクラスのためのABCモジュールを使用して#を


:クラスディスク(All_file)

DEF読み取りを(自己):
印刷( "ディスク読み取り")

DEF書き込み(セルフ):
印刷( "ディスクの書き込み")


クラスCdroom(All_file):
DEF読む(セルフ):
印刷( "CDROM読む")

DEF書き込み(セルフ):
印刷( "書き込みCD-ROM")


クラスMEM(All_file):
DEF読む(セルフ):
印刷( "MEM)は、「読み取り


書き込みDEF(セルフ):
印刷( "書き込みMemの")

:SAD(自己)DEF
印刷( "JJJ")


M1 = MEM()
#m1.sad()
のm1.read()
#m1.write()




継承されます#シーケンス:1.python2:新しいクラスとサブ古典的な古典的なクラスは、基本クラスを継承したオブジェクトではないこと、新しいクラスの基底クラスは、クラスオブジェクトの継承
2.python3を:デフォルトデフォルトのベースクラスである新しいクラスのオブジェクトを継承
3.古典的なデフォルトを以下は、.__新しいクラスが連続のデフォルト幅優先順で、新しいクラスはクラス属性を使用することができ、オーダーの深さに制限されている連続の順序を確認したいとmro__
クラスA:
DEFテスト(自己):
印刷( "A")

クラスは、新しいクラスは、幅優先の検索順序を継承している

クラスB(A):
DEFテスト(自己):
印刷( "B")


クラスC( ):
DEF試験(自己):
印刷( "C")

クラスD(B):
DEF試験(自己):
印刷( "D")


クラスE(C):
DEF試験(自己):
印刷( "E")


F.クラス(D、E):
パス
#DEFテスト(自己):
プリント( "F.")

F1 = F()
f1.test()F.#---> D ----> ---- B > E ----> C ---->

印刷(F .__ mro__)
最後に#python継承を実現する方法である、あなたが定義した各クラスのために、Pythonは、この方法で解決順序(MRO)元祖を計算しますMROの
#リストタプル基本クラスの単純な線形配列である、基底クラスのオブジェクトは、のpython3にデフォルトを継承します



 

 

おすすめ

転載: www.cnblogs.com/tangcode/p/11287046.html