【Python】関数を引数,パラメータとして他の関数に渡すことについて解説しています。(高階関数)
関数はオブジェクト(データを抽象的に表したもの)なので、他の関数に引数,パラメータとして渡すことができます。定義した他の関数を引数,パラメータとして受け入れることができる関数は、高階関数とも呼ばれます。
■Python
今回は、Google Colaboratoryを用います。Google ColaboratoryのPythonのバージョンは、公開時点では「3.7.13」となっています。
■関数を定義し引数,パラメータとして他の関数に渡す
では、早速関数を引数,パラメータとして他の関数に渡すことができるのかの検証として、関数を定義し引数,パラメータとして他の関数に渡してみます。
■コード
def multiplied(number): x = number * 2 return x def addition(number): y = number + 2 return y def add_number(func): z = func(5) print(z) add_number(multiplied) add_number(addition)
今回はdef文を用いてmultipliedとaddition、そしてadd_numberという3つの関数を定義します。multipliedとadditionの関数の方は、呼び出した時に実行される処理としては、それぞれの関数の引数,パラメータ(number)として渡した値をxとyという変数内に格納し、さらに算術演算子の”*(乗算)”と”+(加算)”を用いて演算を行い、結果をxとyの変数にそれぞれ格納します。格納後、returnとして2つの関数は、xとyの変数を返すという処理になります。
次にadd_numberという関数が呼び出され時に実行される処理としては、add_number関数の引数,パラメータとして渡した関数をzという変数内に格納しますが、この時に格納された関数の引数,パラメータ(func)に値を渡します。これでmultipliedとadditionの関数の引数,パラメータに値として今回は「5」が渡され、さらに関数が呼び出された形になるので、関数内の処理が行われ、処理の結果が返され、x変数に格納。格納後、x変数内の情報をprint()で出力させる処理になります。
最後にadd_number()を呼び出すために、関数名と引数,パラメータとして渡す今回の2つのmultipliedとadditionの関数を記述します。
■実行・検証
このセルを保存し、Google Colaboratory上で、セルを実行してみます。
実行してみると、定義した関数に引数,パラメータとして他の関数に渡し結果を出力させることができました。
コメント