Pythonのオブジェクト指向の研究ノート(A)

ノートは自習プロセスのいくつかを概説貼り付け、pycharm内のソース・テキストは、サプリメントの一部であることが、混乱の整頓ビット、内部に書かれた、書き込みは時に完全なデータのバックアップ、必ずしも100%正確です。

 

1.オブジェクト指向機能

 オブジェクト指向のコードを書くことがあるときは使用しない何
        #のプロセスをより複雑な役割との関係
        などQQの友人や見知らぬ人などは、商品の淘宝網の売り手、買い手、会社の人事管理の学校
    高解像度のコード、開発者かどうか明らかに彼らの方法を区別することができ、発信者
    #のコードは、拡張性、可読性、再利用性を持っています


クラスに関して2

#の関係タイプとのクラスの
    #の関係タイプとカスタムクラス、タイプおよびクラスは事ある
    #のタイプ(OBJ)objがオブジェクトであり、彼のタイプはのタイプです

。#クラスの作成方法
    クラスのクラス名の構文レベルを説明するのPythonを文章を読み取った場合
    #のクラスは、タイプ、のうちに作成されて=種類のクラス、タイプ(CLS)を作成タイプのを(OBJ)結果オブジェクトがクラスに属するということであるタイプ(クラス)のこのクラスの結果を作成することですほとんどの場合、元のクラスは、あなたがそのメタクラスを指定しない限り、入力することです

#の直接ロードを、だけでなく、関数呼び出しにロードする:クラス
    静的プロパティ/フィールド/変数
    動的プロパティ/メソッドを

 

オブジェクトについて3。

Pythonのすべてがオブジェクトさ
    基本データ型は、オブジェクトのある

どのようにオブジェクトの作成方法
    #のインスタンスを生成するクラス名を() 
    __new __()空間オブジェクトを作成するには、いくつかの簡単な初期化

#のオブジェクトの
    #は、ポインタによって空間クラスを見つけることができますコンテンツ
    #のオブジェクト自体のみを格納したオブジェクトに属するプロパティの一部
    #のプロセスのオブジェクトを作成するクラスはインスタンス化のプロセスであり、

 

3.継承の組み合わせと

#の組み合わせ:どのような関係は何である
    などの別のオブジェクトのプロパティへの1つのオブジェクト

#の継承は:どのような関係は何である
    #は継承/多重継承シングル
        オブジェクトのサブクラスがメソッドを呼び出すと、クラストーンのサブクラスがあります:単一継承その後、エラーオブジェクトまで、サブクラスは、親が、探している見つけることができなかった
        #のサブクラスはチューニング親に思っている:
            。(自己パラメータに加えて)スーパー(サブクラス、自己)メソッド名
            #の親クラス名:父クラス名メソッド名(自己)
        #のいずれかのクラスのメソッド呼び出しは、それ自体がオブジェクトであり、自己のいくつかを区別する必要があります?
        多重継承を:新しいクラスは、デフォルトのオブジェクトを継承し、PY3が新しいクラスの古典的なオブジェクトによって継承されません
    古典的な、新しいスタイルのクラス
        新しい:幅優先、C3アルゴリズム
            #の継承の順序を見てのMROの方法
            サブクラス名と自己を渡さないスーパー()内部FUNC()クラス。
        古典:深さ優先
            なしMRO 
            スーパー(サブクラス名、自己).func()サブクラス名と自己渡す必要があります
    #のサブクラスとスーパークラスを:コード保存
 
#の抽象クラスとインターフェイスクラスを
        #はインスタンス化することはできません
        #のメソッドを実装しなければならない仕様サブカテゴリ
        抽象クラスを実装するネイティブの方法があるが、しかし、インタフェースクラスのネイティブ実装方法はありません
        、Javaが達成することができ、親クラスのメソッドだけ単一継承をサポートしています
        。#をJavaの、インターフェースインターフェースは、多重継承の規範をサポートし、インタフェースのすべてのメソッドは、唯一のパス書くことができます
        単一抽象クラスの継承で、インタフェースクラスは、主にJavaで発生した多重継承であり、

 

4.ポリモーフィック型アヒル

#1 ダックタイプ:
    例えばシーケンスインデックス特性クラス、クラスはアヒルのタイプであることを特徴と
#の多型至る所:多形
    様々な形態の親クラスを継承するサブクラスの複数の一種で、各サブクラス親クラスの一形態である
    #のJavaの
        、Java用のDEF FUNC(int型引数1、ARG2 STR)#、入ってくるオブジェクト・タイプは、必要と
        #を、あなたが共通の親、親を作成することができますどのようなクラスパス、わからない場合クラスに渡された。これは、Java、多状態のアプリケーションである
    #1 のPython 
        オブジェクトのすべてのクラスは、オブジェクトクラスを持っているので、オブジェクトクラスは、親クラスのすべてが、どこにでも多型PYがあるようにと言うことができます

 

5.パッケージ

#のパッケージ
    幅広いパッケージ:クラスにカプセル化メソッド属性は、物事のクラス記述するための仕様を定義
    狭くパッケージ:民営化は唯一のクラス内からアクセスすることができます
    __静的変数、プライベートメソッド、プライベートオブジェクトのプロパティプライベートクラスメソッドプライベート静的メソッド
    メモリ・ストレージ・クラス名__ __名
    れているクラスの内部クラスは、二重下線のアクセスに使用することができるのはなぜ?クラス内で使用し、あなたが知っている
    #がサブクラス化することができます親クラスのプライベート変数が何にアクセス?いいえ!継承することはできません


6.デコレータ関数プロパティ

のプロパティのデコレータ機能
    彼が内蔵されています関数、メソッドを使用すると、クラス属性、特性に変装するのを助ける!
    Invokeメソッドがないアクティブなブラケット、プログラムのロジックは、より合理的であるように、
    #のメソッド.setterの@名デコレータ、プロパティは、このメソッドを呼び出すときに、プロパティを変更するに装飾された装飾デコレータ、加えて、自己のパラメータの値があるが、パラメータ変更された
    #1 、プロパティ飾らプロパティを削除したい場合、メソッドのデコレータ.deleter @名を呼び出しは、デコレータ方法装飾されている場合円の算出例

クラス:円
     DEF  __init__ (セルフ、R&LT):
        self.r = R&LT 
    @Property 
    DEFエリア(セルフ): この計算方法自体は、プロパティでありますしかし、このプロパティは、クラス/オブジェクトと実質的に異なるであろう変化
        を返す 3.14 ** * self.r 2 
C =サークル(5 プリント(c.area)を

クラスメソッドとデコレータデコレータstaticmethod

#のクラスメソッドのデコレータでなく、組み込み関数クラスメソッド
    #は、名前空間のコンテンツを対象とし、変数(静的プロパティ)を使用していないクラスの名前空間、クラスメソッドやクラスの属性
    #の最初のパスを行うには、クラスのデフォルト名を呼び出すために、クラス名をパラメータ
#は静的メソッドのデコレータ組み込み関数のstaticmethod 
#のクラスメソッド、どちらのリソースで自己を使用する必要が、CLSは、一般的な機能と同等のリソースを持っていない場合は、いくつかの理由に基づいて、この方法は、まだ行われてクラスに、そしてあなたは、静的メソッドメソッドになるために必要
    あなたは完全にオブジェクト指向プログラミングを使用する場合、すべての機能は、クラス記述する必要があります
    特定の機能は確かに、確かに役に立たないこのクラスのメソッドですリソースに関連するこのクラスなどの学生や管理者としてログインする必要があり、学生や管理者は、リソース占有したくない
クラスに人を:
    @staticmethod 
    DEF ログイン():
         パス
クラスの生徒(人を):パス
クラスマネージャ(個人):パス

 

7.反射

反射:指定された名前空間から、文字列変数名のデータ・タイプは、変数の値を取得するために静的メソッド反射静的プロパティクラスのクラスメソッド名オブジェクトの実施の形態のオブジェクトのプロパティメソッドメソッドモジュールモジュール自モジュール反射、(ここで、不完全相補モジュールは部分を待たなければならない)、例えば、
 インポート  SYS 
 mymodoule = sys.modules [ ' __main__ ' ] 
 GETATTR(mymodoule、' 変数名' はhasattr / GETATTR / SETATTR / delattr パラメータ
    (名前空間「変数名」) 
    SETATTR(名前空間、「変数名」の新しい値)
#の変数名あなたは、の文字列バージョンを取得することができます
    ファイルから取得
    #の相互作用テイク:入力/ネットワーク伝送を

 

8ビスの方法

9.デストラクタ

10.item方法

11.hash方法

12.モジュールの知人

おすすめ

転載: www.cnblogs.com/jsacm/p/11492930.html