【Python】関数を引数,パラメータとして他の関数に渡す(高階関数)

スポンサーリンク

【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上で、セルを実行してみます。

実行してみると、定義した関数に引数,パラメータとして他の関数に渡し結果を出力させることができました。

コメント

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