Pythonでのオペレータ再ロードの使い方分析

1505 ワード

この例では、Pythonのオペレータリロードの使用例について説明します.皆さんの参考にしてください.具体的には以下の通りです.
クラスはpythonのオペレータを再ロードできます
オペレータのリロードにより、オブジェクトが内蔵されているのと同じになります._X__の名前の方法は特殊なフック(hook)であり、pythonはこのような特殊な名前でオペレータをブロックし、リロードを実現する.pythonは、オペレータを計算するときに、次のような方法を自動的に呼び出します.
オブジェクトが継承されている場合add__メソッドは、+式に表示されると呼び出されます.リロードにより、ユーザー定義のオブジェクトは内蔵されているようになります.
クラス内のオペレータの再ロード
1、オペレータの再ロードにより、クラスが標準のpython操作をブロックできるようにする.2、クラスはすべてのpythonの式オペレータを再ロードできます.3、クラスはオブジェクト操作:print、関数呼び出し、限定などを再ロードすることができる.4、リロードにより、クラスのインスタンスが内蔵されているように見えます.5、リロードは特殊なネーミングのクラスメソッドによって実現される.
メソッド名のリロード操作説明呼び出し式_init__コンストラクション関数作成オブジェクト:class()_del__構造関数がオブジェクトを解放するとき_add__        “+”            x + y __or__        “|”            x | y __repr__印刷、変換print x,`x`_call__関数呼び出しX()getattr__属性参照x.undefined_getitem__インデックスx[key],forループ,inテスト_setitem__インデックス付与x[key]=value_getslice__スライスx[low:high]_len__長さlen(x)_cmp__x==Y,x例:
__getitem__すべてのインデックス操作をブロック

>>> class indexer:
def __getitem__(self,index):
return index ** 2
>>> x = indexer()
>>> for i in range(5):
print x[i]  #x[i]   __getitem__(x,i)
0
1
4
9
16


Pythonに関する詳細については、「Python正規表現用法総括」、「Pythonデータ構造とアルゴリズムチュートリアル」、「Python Socketプログラミングテクニック総括」、「Python関数使用テクニック総括」、「Python文字列操作テクニック要約」、「Python入門と進級経典チュートリアル」、「Pythonファイルとディレクトリ操作テクニック要約」を参照してください.
ここではPythonプログラムの設計に役立つことを願っています.