Pythonのオブジェクト指向 - アドバンスト - 組み込みメンバーと学習の魔法猿方法#


 

 

###内蔵のメンバー

`` `のpython

#クラス/オブジェクト/オブジェクト.__ dict__にを取得するには、クラスのメンバーに属し

RES =デモ.__ dict__に#のgetメンバーの現在のクラス

RES = OBJ .__ dict__に#取得するには、オブジェクトの現在のメンバーが所属します

#文書情報クラス/オブジェクト.__ doc__内の例題のクラスを取得します

RES =デモ.__ doc__内の例題

RES = OBJ .__ doc__内の例題

#からなるクラスの文字列名を取得します。

RES =デモ.__ name__

現在のファイルを__main__として表示されている場合#クラスのファイル名が、配置されている取得します

RES =デモ.__ module__

#__Bases__親クラスの現在のクラスのリストを取得します

RES =デモ.__ base__#GET最初の親クラスの継承

継承された親クラスのすべてのRES =デモ.__ bases__#GETリスト

#MRO現在のクラスの継承チェーンのリストを取得

デモ=何も.__ mro__

`` `

###分類の方法

`` `のpython

1.オブジェクトメソッド

    特長:

        自己パラメータを含むクラスで定義されている方法、

        2.自己を含む方法は、オブジェクトのみを使用して呼び出すことができ

        3.方法が渡したオブジェクトを呼び出します

2.クラスメソッド

    特長:

        1。このクラスで定義されている方法は、デコレータが飾られてい@classmethod

        2。このメソッドは、CLSライン引数を持っています。直接クラスの呼び出しを使用する必要はないオブジェクトをインスタンス化します

        3。このメソッドは、渡されたクラスを呼び出します

3. Bindingクラスのメソッド

    特長:

        1。このクラスで定義されたメソッド

        2。クラスと呼ばれることのみ使用します

        3。着信オブジェクトまたはクラスが伝達されません。

4. staticメソッド

    特長:

        1。このクラスで定義された方法では、我々は@staticmethod装飾されデコレータを使用します

        2。あなたは、オブジェクトまたはクラスの呼び出しを使用することができます

        3。着信オブジェクトまたはクラスが伝達されません。

`` `

###一般的に使用される機能

`` `のpython

#検出クラスと関連するオブジェクト

#Issubclass(サブクラス、親クラス)#クラスが別のクラスのサブクラスであるかどうかを検出します

#RES = issubclass(D、B)

#でisinstance(オブジェクトクラス)#オブジェクトがクラスの結果のクラスまたはサブクラスのインスタンスであるかどうかを検出します

#RES =でisinstance(D、A)

操作に関連するクラスとオブジェクトの#メンバー

#はhasattr(オブジェクト/クラスのメンバ名 ')クラス/オブジェクトを検出するには、指定のメンバーの名前が含まれています

#RES =はhasattr(D '名前')

#getattr(オブジェクト/クラスのメンバ名は ')クラス#/オブジェクトのメンバの値を取得します

#RES = GETATTR(D 'と言います')

メンバ#1 SETATTR(オブジェクト/クラスのメンバ名」、「メンバーの値」)に設けられたクラス/オブジェクトの属性値

RES = SETATTR(D '名前'、 'OOO')

#プリント(d.name)

#delattr(クラス/オブジェクトのメンバ名 ')を削除クラス/オブジェクトのメンバプロパティとデル・オブジェクトを削除するには、同じ結果のメンバーであります

#delattr(D '名前')

#ディレクトリ()#は、現在のオブジェクトのリストを取得することのメンバーによってアクセスすることができます

何も=(d)を言いません

`` `

###マジックメソッド

手動メソッド呼び出しを必要としない>マジックメソッドが自動的に実行することができます

`` `のpython

1. __init__初期化方法*****

    トリガ機構:トリガーその後すぐにするオブジェクトをインスタンス化し、方法

    役割:オープンメンバープロパティの呼び出し割り当て方法、またはいくつかのリソースを作成します。現在のようないくつかの初期化操作を、作成した完全なオブジェクト。

    パラメータ:自己、現在のオブジェクトを受信するが、他のパラメータは、必要に応じて定義することができます。

    戻り値:なし

    警告:なし

2. __new__コンストラクタ****

    トリガ機構:自動トリガ(__init__前トリガー)オブジェクトがインスタンス化されます

    役割:作成した管理制御プロセスオブジェクト

    パラメータ:現在のクラスを受けCLSは、他のパラメータは、初期化パラメータの方法に従って決定されます

    戻り値:なし戻り値はオブジェクトの結果なしのインスタンスではない場合、オブジェクト.__新しい__(CLS)作成されたオブジェクトを返す必要があります

    注意事項:

            最初のパラメータに加えてパラメーター__init__方法及び__new__一貫する方法であって、

            戻り値は、オブジェクトの結果なしのインスタンスではない場合、オブジェクト.__新しい__(CLS)作成されたオブジェクトを返す必要があります

    シナリオ:シングルトンデザインパターンデザインパターン

3. __del__デストラクタ*****

    トリガ機構:クラスのオブジェクトは自動的に破棄されたトリガ

    の役割を:オブジェクトの解放が作成した場合、一部のリソースまたは開いているか閉じて作成

    パラメータ:selfは、現在のオブジェクトを受け入れます

    戻り値:なし

    警告:なし

4. __call__ ***

    トリガ機構:自動的にオブジェクトの直接関数呼び出しとしてトリガ

    処置:コールを容易にするために、誘導の手順のための一般的なクラスやオブジェクト

    パラメータ:他のパラメータのコールニーズの欠点に応じて、自己の現在のオブジェクトを受け取ります

    戻り値:オプション

5 .__ len__

    トリガ機構:現在のオブジェクトを検出するために、LEN関数を使用して自動的にトリガ

    処置:LEN関数は、現在のオブジェクトの検出情報に使用することができるデータであります

    パラメータ:自己現在のオブジェクトを受け取ります

    戻り値:がなければならない、と整数でなければなりません。

    注:任意のプロパティの値を取得するためにlenを、プロパティが戻り値に返されるの長さをすることができ

6 .__ str__

    トリガ機構は:印刷機能strのかがトリガされると自動的にオブジェクトを操作します

    処置:オブジェクト・コードの文字列を返すには、カスタマイズされた情報を印刷することができます

    パラメータ:自己、現在のオブジェクトを受け取ります

    戻り値:文字列型の値でなければなりません離れて、存在しなければなりません

7 .__ repr__

    トリガー機構は:自動的にトリガされたときに変換するのrepr方法を用いて、現在のオブジェクト

    効果:結果は、操作対象機能に提供することができるのrepr

    パラメータ:自己、現在のオブジェクトを受け取ります

    戻り値:文字列型の値でなければなりません離れて、存在しなければなりません

    注:この方法__str__魔法が存在しない場合は通常の状況下では、__ repr__方法はマジックメソッドを置き換えます__str__

8 .__ bool__

    トリガ機構:現在の使用ブール機能はデフォルトで自動的にトリガされ、現在のオブジェクトに変換は、オブジェクトがTrueに変換されます。

    効果:ブールオブジェクトは、任意のデータを変換することができますコンバータの種類を置き換えることができます

    パラメータ:自己オブジェクトを受け取ります

    戻り値:戻り値はブール値でなければなりません

`` `

###関連のマジックメソッドのメンバー

`` `のpython

## 1. __getattribute__最も高い優先度

    トリガ機構:オブジェクトのメンバにアクセスするときにかかわらず、現在のメンバーが存在するかどうか、自動的にトリガ

    役割:データの一部のメンバーが処理するときには、オブジェクトを取得することができます

    パラメータ:自己受け取るオブジェクト、現在のメンバーの項目名がアクセスを受け、

    戻り値:不要、戻り値は、アクセスの結果であります

    注意:現在の魔法の方法では、現在のオブジェクトのメンバーの禁止がアクセスされ、それが再帰をトリガーします。

            あなたは魔法のメソッドの現在のメンバーでオブジェクトにアクセスしたい場合は、オブジェクトにアクセスするために使用されなければなりません

            フォーマット:オブジェクト.__のgetAttribute __(自己、アイテム)

## 2. __getattr__

    トリガ機構:アクセスへのメンバーはオブジェクトが存在しない、自動的にトリガ

    役割:エラーが存在しない場合、メンバアクセスを防止するためにも存在していない割り当てのメンバーであることができます

    パラメータ:現在のオブジェクトを受信する自己、現在のメンバーの項目名がアクセスを受信します

    戻り値:オプション

    注:__getattribute__方法がある場合は、この方法は__getattribute__実行することになります

    注、あまりにも、訪問に再び、これは方法の現在のメンバーに存在していないではない、それは再帰をトリガーします

## 3. __setattr__

    トリガ機構:(追加を含む、変更)オブジェクトのメンバーへの割り当てが自動的にトリガ

    役割:管理の制限またはターゲットのメンバーが操作を追加および変更するには

    パラメータ:1。図2は、自己現在のオブジェクトを受信します。メンバー名キー設定3。valを設定メンバー値

    戻り値:なし

    注:直接現在の割り当てのメンバーを対象とする現在の禁止魔法の方法では、再帰をトリガーします

            あなたが現在のオブジェクトのメンバーに割り当てたい場合は、オブジェクトが必要

            フォーマット:オブジェクト.__ SETATTR __(自己、キー、値)

## 4. __delattr__

    トリガ機構:削除が自動的にトリガ部材オブジェクト

    メンバーを削除するオブジェクトを制限するために与えられている防ぐことができ、あなたも存在しないメンバーを削除することができますの役割を

    パラメータ:1、自己2は、現在のオブジェクトを受け取ります。アイテムは、メンバーの名前を削除しました

    戻り値:なし

    注:マジックメソッドの現在のメンバーでオブジェクトを削除しないでください、それは再帰をトリガーします。

            あなたが現在のオブジェクトのメンバーを削除したい場合は、我々は、オブジェクトの助けが必要

            フォーマット:オブジェクト.__ delattr __(自己、アイテム)

`` `

###アクセス順序のメンバー!

1.コール `__getattribute__`魔法の方法

2.コールデータ記述子は後で話すます[]

現在のオブジェクトの3コールメンバー

4.現在のクラスの呼び出しメンバー

5.コールデータ記述子[非は後で話します]

6.コール親クラスのメンバー

7.コールマジックメソッド `__getattr__`

>上記のメンバーを呼び出すステップの上記のシーケンスが正常に起動できた場合、バックは行われません

 

マスタリーはとして追い越すために曲がる、方法を学びます!

APEに学ぶ:ちょうどブティック、独自の成果を!

おすすめ

転載: www.cnblogs.com/itxdl/p/12522545.html