CSIC_716_20191112デコレータ[詳細設定]、およびイテレータ

デコレータは、主に、前進重畳デコレータ基準デコレータがあります

重畳デコレータ:装飾されるべき物体、デコレータ複数の添加。

なぜ使用オーバーレイデコレータの理由は: - すべての新しい機能では、構造が明確で、貧しい人々スケーラビリティないが、それ以外の場合は、冗長なコードにつながる、新しいデコレータを書く必要があります。

理解重畳デコレータの作品を:装飾際近接の原理は、トップの装飾に下から、機能がアップラップします。最終ダウンの実装から呼び出されたときに、トップデコレーターの終わりに戻ります。

 

 

 

 

 

 

 

パラメータデコレータがあります。

パラメータの装飾は、デコレータの三層構造に渡されるパラメータを渡されます。

@wrapper( 'パラメータ')

そこデコレータ固定基準文(パラメータ)

GBK _ * _:_ * _#コーディング
#@author:ワンダー
DEF認定(のparamater):ここではテスト#一つのパラメータのみ
    DEF warpper(FUNC):
        DEFインナー(* argsを、** kwargsから):             
            IF(「#のparamaterの裁判官)であること:
                #は波浪条件確立動作しません
                、RES = FUNC(*引数を** kwargsから)
                リターンはRES 
            他:
                #はの操作のための条件を設定しない
                RES = FUNC(* argsを、** kwargsから)
                戻りRESは           
        インナーを返します
    ラッパーのリターンは

#1( 'のparamaterを')@certified パスパラメータを、このパラメータのみテストです 
:DEFのFUNC()
    印刷( '波FUNC操作を行う')
    の戻り

FUNC()#の呼び出し

  送信パラメータの複数、ここでライト内部デコレータ複数の場合を判断します。装飾オブジェクトがコピーされ、決意の様々な達成するために、異なるパラメータ装飾上方で添加することができます。

 
ラップオブジェクトを飾られているスペースを修復する修復ツールです。装飾的なプロセスでは、クロージャー関数デコレータを追加します
インポートデコレータ上側の閉鎖機能:functoolsからはラップ、使用をインポート
#6、例えば、10秒、機能の制限周波数と呼ばれ、デコレータを実装

インポート時間 functoolsインポートラップ部から runed_time = [0] DEF warpper(FUNC): @wraps(FUNC) DEFインナー(引数*、* kwargsから*): ヘルツ= INT(time.time()) IFヘルツ- runed_time [0]> 10:#は現在の時刻を表示する間、最後の実行の差の実行時間 プリント( 'なし') 、RES = FUNC(*引数kwargsから**) runed_time [0] = Hzの リターンはRES :他の ( '上陸...')印刷 (ヘルツ- - runed_time [0])P = 10 time.sleep(P) runed_time [0] = Hzの 印刷( {P}を待機f'else秒「) RES = FUNC() 戻りRES インナー返す @wrapperを 薬DEF(): プリント( '执行一次') しばらく真: 入力( '>>>') 薬() 
#Functionオブジェクト.__ doc__内の例題:関数内コメントを見ます

 

 

 

おすすめ

転載: www.cnblogs.com/csic716/p/11852896.html