
関数デコレータとチェーン
関数デコレータとは何ですか?
デコレータは、他の関数を変更する関数です。これらは、関数を直接変更せずに関数の動作を強化または拡張する方法を提供します。
構文:
1 2 3 | @decorator_function
def function_to_decorate():
# Function body
|
ログイン後にコピー
デコレータの連鎖
デコレータつまり、複数のデコレータを同じ関数に適用できます。デコレータをチェーンする順序が重要です。
1 2 3 4 | @decorator2
@decorator1
def function_to_decorate():
# Function body
|
ログイン後にコピー
この例では、decorator1 が最初に適用され、その後にdecorator2 が適用されます。
例
目的の結果を達成するには出力では、カスタム デコレータを作成できます:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # Decorator for bolding text
def makebold(fn):
def wrapper():
return "<b>" + fn() + "</b>"
return wrapper
# Decorator for italicizing text
def makeitalic(fn):
def wrapper():
return "<i>" + fn() + "</i>"
return wrapper
@makebold
@makeitalic
def say():
return "Hello"
print (say()) # Output: "<b><i>Hello</i></b>"
|
ログイン後にコピー
この例では、@makebold デコレータが適用されます最初に @makeitalic が続きます。出力は、太字と斜体のタグで囲まれた「Hello」です。
以上が関数デコレータはどのように機能し、どのようにチェーンできるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。