パラメータを持つPythonのクラスのデコレータ

抜粋します。https://www.cnblogs.com/zhzhang/p/11375774.html

 

# - * -コーディング:UTF-8 - * - 。 著者:宝山
#デコレータパラメータクラスと(クラスのデコレータとパラメータなしは非常に異なっている)
__call__を実装する必要があり、クラス#デコレータを実装__init__と組み込み関数2。
#__init__:それは装飾的な機能を受けなくなったが、着信パラメータを受け取り; 
#__call__:装飾的なロジックを達成するために、装飾的な機能を受け取る


クラスロガー(オブジェクト):
    DEF __init __(自己、レベル=「INFO」):
        self.level =レベル

    DEF __call __(自己、FUNC):
        DEF warpper(* argsを、** kwargsから):
            印刷( "[{レベル}]:ファンクションFUNC {}()を実行しているのは..."フォーマット(レベル= self.level。 、FUNC = FUNC .__ name__))
            FUNC(* argsを、** kwargsから)
        warpperリターン


@Logger(レベル= "WARNING")は
DEF(何かを)言う:
    。)形式(何か) "!} {言う"(印刷


(と言います「こんにちは」)

  

 

おすすめ

転載: www.cnblogs.com/LiuYanYGZ/p/12169356.html