PythonのFunctoolsモジュールを使用し部分関数を作成してみます。
部分関数とは、特定の引数(パラメータ)値に対するオリジナルの関数のことで、部分関数を作成するには、Functoolsモジュールからpartial()を用います。
■基本的な構文
partial(func, /, *args, ** kwargs)
partial()の括弧内に、固定の位置引数,パラメータとキーワード引数,パラメータを渡し、さらに「func(関数の名前)」を記述し渡すことで、関数が呼び出され、部分関数が作成されます。
■Python
Google Colaboratory(Google Colab),Python3.7.10
■部分関数を作成する
では、Functoolsモジュールを使用し部分関数を作成してみます。
■コード
from functools import partial def addition_test(x,y): return x + y add_1 = partial(addition_test,10) add_2 = partial(addition_test,20) print(add_1(10)) print(add_2(10))
「from import」でFunctoolsモジュールのpartialを呼び出します。今回はdef文でaddition_testという関数を定義し、関数に渡す引数,パラメータをxとyに設定します。関数が呼びされた時に、実行される処理としては、returnでxとyを加算(足し算)した戻り値を返すものにします。
addition_testを定義後、add_1を定義し、partial()を用いて括弧内に第1の引数,パラメータとして、定義した呼び出す関数の名前を渡します。第2の引数,パラメータとして、呼び出す関数の引数,パラメータを修正しますので、今回は「10」として渡します。これで関数が呼び出され、部分関数が作成されます。
同じようにして、add_2も定義します。こちらは、partial()の第2の引数,パラメータを「20」として渡します。
最後に、add_1()とadd_2()を呼び出してみます。呼び出す際は括弧内に部分関数に渡すものを入れます。
■実行・検証
このスクリプトを作成後、このスクリプトを実行してみます。
実行してみると、Functoolsモジュールのpartial()を用いたことで、部分関数が作成され、作成した部分関数の処理が実行。実行された結果(戻り値)をprint()関数で出力させることができました。
なお、add_1()を呼び出してみると、xは10に置き換えられ、yは10に置き換えられ、”左から”置き換えられていることが確認できました。
今回の部分関数の作成したことで、引数,パラメータとして渡した数値に「10」を加算したケースや「20」を加算したケースなど、数多くの関数を定義する場合が必要な場合に、部分関数を用いると、同じコードを書き直す作業が減るということがわかりました。
コメント