デコレーターに複数の引数を渡す方法

デコレータに複数の引数を渡すには、外部のデコレータ関数で引数を受け取り、内部のデコレータ関数でそれらの引数を扱います。以下はデコレータに複数の引数を渡す方法の例です。

python
def decorator_with_multiple_args(arg1, arg2): def actual_decorator(func): def wrapper(*args, **kwargs): # arg1とarg2を使用して何かの操作を行う result = func(*args, **kwargs) return result return wrapper return actual_decorator @decorator_with_multiple_args(arg1_value, arg2_value) def my_function(): # 関数の本体

上記の例では、decorator_with_multiple_argsは外部のデコレータ関数です。この関数はarg1arg2を受け取り、内部のactual_decorator関数を返します。actual_decorator関数はデコレートされた関数をラップするラッパー関数を返します。

デコレータを使用する関数(上記の例ではmy_function)の上に@記号を使ってデコレータを指定する際に、引数arg1_valueおよびarg2_valueを指定します。デコレータは指定された引数を受け取り、それらの引数を使用してデコレートされた関数の実行中に操作を行うことができます。

この方法を使用することで、デコレータに複数の引数を渡すことができ、デコレータをカスタマイズしてさまざまな振る舞いを持つようにすることができます。