PythonのFunctoolsモジュールを使用し部分関数を作成する

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」を加算したケースなど、数多くの関数を定義する場合が必要な場合に、部分関数を用いると、同じコードを書き直す作業が減るということがわかりました。

コメント

タイトルとURLをコピーしました