[再検査のPythonプログラミング第二版DONGフー郭] Pythonの特殊な方法およびオペレータのオーバーロード

方法の1例

1.1 __add __(自己、n)は、

- * -コーディング:UTF-8 - * - 

配列クラス、サポート及び配列番号間の四則演算アレイ間添加し、内積演算のサイズを比較
#1 アクセスする配列要素をおよび変更部材テスト
クラスをMyArrayという:
     __value = []
     __size = 0 
    
    判定するデジタルか
    DEF  __IsNumber (セルフ、N-):
         のiFませんでisinstance(N、INT))\ ませんでisinstance(N、フロート))\ ませんでisinstance(N、コンプレックス)):
                リターンリターン真の
          
    初期
    DEF  __init__(セルフ、* 引数):
         IF  ない引数:
            。自己__value = []
        のArg での引数:
                 IF  ないセルフ。__IsNumber (アルギニン):
                     印刷' すべての要素が数値でなければなりません' 戻り
            自己。__value = リスト(引数)を
        
    アレイの各要素は、数N、または2つの配列のほかに追加されます
    デフ __add__ (自己、N):
         もし自己。__IsNumber (N):
            B = MyArrayという()
             のために V 自己。__value 
                B。__value .append(V + N)
             リターンB
         のelif でisinstance(N、MyArrayという)
             場合 lenの(N __value(自己)== LEN __value ):
                C = MyArrayというを()
                 のために I、J  ZIP(自己。__value、 n個。__value ):
                    C。__value .append(I + J)
                 リターンC
             プリント' 長さと等しくない' プリント' サポートされていません' 

1.2 __sub__

    デフ __sub__ (自己、N):
         もし ない自己。__IsNumber (N):
             プリント" 非数" リターン
        B = MyArrayという()
         のために V 自己。__value 
            B。__value .append(V - n)の
         戻り B

1.3 __repr__:直接出力オブジェクト[判別__str__)

 あなたはこの関数を記述していない場合:

    直接呼び出し文の関数としてオブジェクトを使用して、
    DEFの __repr__ (自己):
         戻りのrepr(セルフ。__value

1.4 __str__:ダイレクト出力オブジェクト

デフ __str__ (自己):
戻り STR(セルフ。__value

 

 

 

おすすめ

転載: www.cnblogs.com/douzujun/p/12535830.html