Pythonの関数で引数に別の関数を設定して使う方法の解説

Pythonにおいて関数の引数に別の関数を設定して使う方法を解説

Pythonでは関数の引数にそれとは別の関数を設定して使うことが可能です。今回はその方法について解説します。

まず次のコードを見てください。

具体例による解説

コード

#関数resultの実引数として使われる関数additionを定義
def addition(x, y):
    return x+y

#関数additionを引数にとる関数resultを定義
def result(fnc):  #仮引数fncに関数additionが代入される
    print(fnc(2,3))  

#関数resultの実引数に関数additionを設定して実行
result(addition)  # 結果:5

上のコメントに書いた通りですが、最後の

result(addition)  # 結果:5

で、関数resultの引数として定義済みの関数additionを設定している点に注目してください。

もちろん定義されていない関数を引数に設定すればエラーが出ます。

コードの解説

あえてこの仕組を解説する以下のようになります。

関数resultの引数の関数additionが、resultの仮引数fncに代入され、fnc=additionとなります。

結果、

print(fnc(2,3))  

は、

print(addition(2,3))  

となり、

まずaddition(2, 3)が実行されます。その結果「5」という数字がreturn文によって返され、それがprintによって出力されます。

なお、引数に関数を設定する場合には今回のコードについて以下のような注意点があります。

注意点

result(addition)  # 結果:5

エラー:result(addition( ))とする場合

addition( )としてしまうと、エラーが出ます。

なぜなら、関数additionは、

def addition(x, y):

というように、引数を2つとる設定で宣言していますので、単にaddition( )としてしまうと、引数の設定と不一致が発生して不適切だからです。

エラー:result(addition(2, 3))とする場合

addition(2, 3)としてしまうと、その部分につき、まずは関数additionが引数「2」と「3」をとったまま実行されます。

そうするとその結果は「5」という数字になります。その数字「5」が関数resultの引数となります。関数が引数になりません。

結果、fnc=5となり、print(5(2,3))となってしまうので、これはおかしいですよね。よってエラーが出ます。

以上、Pythonにおいて関数の引数に関数を設定する方法・使い方の基本的な解説でした。上のエラーが発生する両方の場合について、実際にみなさんも設定してみてエラーが出ることを確かめてみてください。理解がはかどると思います。

【今回の記事と関連する記事】

もしみなさんがこれからのプログラミング学習や転職などに悩みがあるならば、現役エンジニアから学べるプログラミングスクールTechAcademy [テックアカデミー]でオンライン講座を受講するのも良いと思います。1人で悩みながら学習を進めるよりもわかりやすく、費やす時間も少なく合理的・効率的に学習できるからです。

Webマーケティングコース

Webアプリケーションコース

データサイエンスコース

機械学習の基礎が学べる「Pythonコース」

など各種の講座が用意されていますので、自分の未来に沿った講座が見つかります。無料で体験できるテックアカデミー無料体験も用意されていますのでお得に利用してみてください。

初心者におすすめプログラミングスクール