Pythonのユニバーサルデコレータを書くためにどのように、両方の装飾方法は、パラメータがあり、あなたはまた、引数なしでメソッドを飾ることができ、または戻り値を装飾することができるかどうか

Pythonの装飾で、あなたはパラメータ、戻り値を持つことができますので、どのようにこれは、両方の装飾デコレータは戻り値メソッドがない引数なし、およびメソッドの戻り値にすることができまたはパラメータは、それを飾ることができますか?次のように普遍デコレータは、あります:

DEF(テスト)飾る:#は関数デコレータを定義します

デフボールド(* argsを、** kwargsから ):#* argsが、任意の数のパラメータを受け取ることができます

#**引数はパラメータ辞書の複数のいずれかを受け取ることができます

印刷(「スタイル= 『フォント重量:BLOD』」)

RES =テスト(* argsを、** kwargsから)#を書き込み、それらが装飾された場合でも、テスト機能はありません持っています

戻り値は問題で、文句はありませんしません。

リターン解像度#test 関数は、戻り値には戻り値を返さないなし

太字戻ります

上記のコードが完了した Pythonの文言ユニバーサルデコレータ、(*引数、** kwargsからの任意のタイプの任意の数のパラメータを受け取ることができる)、値がノーリターンが存在しないことができる返します変更、印刷、それらの所望の機能のための文章を、それが彼らの普遍的なデコレータです。その結果、あなたは任意の関数を飾ることができます。

どのような機能を使用するには、上記のコードをテストするには:

@decorate#飾るA引数メソッドは値を返しません。

デフTEST1():

(「:test1の印刷引数なしでは、値を返しません」)     

 

@decorate#飾るAパラメータ法の

デフTEST2(名):

印刷( "TEST2:パラメータ%sの" %名)

 

@decorate#飾る方法は、以下の値を返します

デフTEST3():

        STRS =「TEST3:戻り値を持ちます

        リターンSTRS

 

TEST1()#の結果:   スタイル= "フォント重量:BLOD"

TEST1:パラメータなし、ノーリターン値

TEST2( "SS")#の結果:   スタイル= "フォント重量:BLOD"

TEST2:パラメータのSS

= Test3は()

印刷()#の結果:    スタイル=「フォント重量:BLOD」

TEST3:戻り値

おすすめ

転載: www.cnblogs.com/sy-zxr/p/12054068.html