-
関数を引数として渡す基本的な方法: 関数を引数として渡す際には、関数の名前をそのまま渡します。以下は、引数を持つ関数を別の関数に渡す基本的な例です。
def func1(arg): print("Hello", arg) def func2(func, arg): func(arg) func2(func1, "World")
この例では、
func1
という引数を持つ関数を定義し、func2
という関数にfunc1
と"World"を引数として渡しています。func2
内でfunc(arg)
と呼び出すことで、渡された関数が実行されます。 -
ラムダ関数を使用する方法: ラムダ関数は無名の関数であり、即座に作成して使用することができます。以下は、ラムダ関数を使用して関数を引数として渡す例です。
def func2(func, arg): func(arg) func2(lambda x: print("Hello", x), "World")
この例では、
func2
関数にラムダ関数を引数として渡しています。ラムダ関数はlambda x: print("Hello", x)
という形式で定義されており、引数x
を受け取って"Hello"とx
を表示します。 -
デコレータを使用する方法: デコレータは関数を修飾するための機能であり、関数を引数として受け取り、修飾された関数を返す関数です。以下は、デコレータを使用して関数を引数として渡す例です。
def decorator(func): def wrapper(arg): print("Before") func(arg) print("After") return wrapper @decorator def func(arg): print("Hello", arg) func("World")
この例では、
decorator
というデコレータ関数を定義し、func
関数にデコレータを適用しています。デコレータ関数は内部でwrapper
関数を定義し、func
関数の前後に処理を追加します。
これらはPythonで引数を持つ関数を別の関数に渡すいくつかの方法の例です。他にも、functools.partial
やmap
関数など、さまざまな方法があります。具体的な状況に応じて適切な方法を選択してください。