八、オブジェクトおよびクラス

カスタムオブジェクトを作成します。

1、魔法の対象

    オブジェクト:一連のデータ(属性)とデータにアクセスして操作するためのメソッドのセット。

    多型:同じ操作は、異なる種類のオブジェクトに対して実行することができます

    パッケージ:オブジェクトの動作に関する外部の隠された詳細

    継承:あなたは、共通のクラスに基づいて特別なクラスを作成することができます

  メソッドの状態とより1.1

    あなたはどのような種類のオブジェクトの変数の点を知らない場合であっても、その動作は、操作を行うことができ、およびオブジェクトとの型(クラス)の操作は、他に属します。    

    方法に関連した機能およびオブジェクトのプロパティが呼び出されます。

  1.2パッケージ化とプロパティ

    プロパティは、変数のオブジェクトに起因するものです

    属性は、オブジェクトの状態を記述する

    オブジェクトの属性は、方法を変更することができます

    要約:オブジェクトが合成される関数(メソッド)の集合であり、いくつかの変数(プロパティ)の権利へのアクセスを与え、そしてプロパティが二度関数呼び出しの間の値を格納するために使用することができます。

  1.3継承

    サブクラスは、親クラスのすべての属性とメソッドを持っており、その方法は簡単で、または親クラスのプロパティ

2、クラス

  2.1は、どのようなクラスであります

    クラス - オブジェクト。

    各オブジェクトは、クラスと呼ばれる、特定のクラスに属するインスタンス

    クラス定義でサポートされている方法。

    サブクラス(サブクラス)

    スーパークラス(スーパークラス)

  2.2カスタムクラスを作成します

    

    

  2.3のプロパティ、関数とメソッド

    それに関連した最初のパラメーター(自己)インスタンスへのメソッド(メソッド関連する)が属するが、このパラメータを提供する必要はありません。

  2.4隠します

    メソッドまたはプライベートと呼ばれるプロパティ(外部からアクセス可能ではないが)、ちょうど2つのアンダースコアで始めることができましょう名前を付けましょう。

    プライベートプロパティのみによって、外部のオブジェクトからアクセスすることができないアクセサアクセス方式に(例えばget_nameとSET_NAME)。

    注意

      クラス定義では、2つのアンダースコアで始まるすべての名前は、クラスの外からのアクセスprivateメソッドにできるようになる、すなわち、先頭のアンダースコアとクラス名を追加し、変換されます。

      

 

 

     

    あなた発行され、名前を変更する必要はありませんが、アクセス方法のか、外部信号からのプロパティを変更したくない場合は、アンダースコアで始めることができ、これが慣例です。

  名前空間のクラス2.5

    コードは、クラスステートメントで定義された(名前空間のような)特別な名前空間の実行内であり、そしてクラスのすべてのメンバーが名前空間にアクセスすることができます。

    

    

  2.6スーパークラスを指定します

    スーパークラスを指定するには、クラス名は、クラスの声明に加え、スーパークラスの名前であること、および括弧で囲まれたことがあります。

  相続の2.7徹底的な議論

    クラスが別のクラスのサブクラスであるかどうかを議論するために、方法は、組み込みを使用することができるissubclassを

    

 

 

    あなたはクラスを持っている場合は、その特殊な性質が訪れ__bases__それが基底クラスであることを知っています 

      

    オブジェクトが特定のクラスのインスタンスであるかどうかを決定するために、使用することができるでisinstanceを

    

 

     あなたがクラスに属するオブジェクトかどうかを知りたい場合は、プロパティを使用することができます__class__

    

    タイプ(複数可)は、それが属するクラスを通知することができます

    

  以上の2.8スーパー

    多重継承。

    

    特定のメソッドまたはプロパティを探しているときに、同じスーパークラスのスーパークラス、シーケンシャルアクセス方式の複数のスーパー解決順序(MRO)と呼ばれます。  

    一般的な方法は、スーパークラスと1つまたは複数の混合スーパークラスのコアを使用することです。

 

  2.9インタフェースと内観

     オブジェクトが特定のインターフェイスに従う(すなわち、特定の方法が実施されます)    

 

     

 

 

  2.10抽象基底クラス

    PythonはモジュールABCを導入することによって、という抽象基本クラスをサポートしています。

    

 

3、オブジェクト指向設計 

  どのクラスとメソッドが含まれるべきこれらのクラスを決定するために、あなたはこれを行うことができます。

    1、問題の説明(何をするプログラム)の記録は、とマークされたすべての名前、動詞や形容詞を与えます

    2、の点で可能クラスを識別

    3、動詞の可能な方法を見つけるために

    4、可能な属性の形容詞を識別

    5、方法および属性は、各クラスを識別するために割り当てられています

  改善されたモデル

    1、症例のシリーズ録画(またはシナリオ)。

    2、徹底した慎重モデルはあなたが必要なものがすべて含まれていることを確認し、それぞれのシナリオを検討してください。 

おすすめ

転載: www.cnblogs.com/nuochengze/p/12441966.html