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:戻り値