Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Address
304 North Cardinal St.
Dorchester Center, MA 02124
Work Hours
Monday to Friday: 7AM - 7PM
Weekend: 10AM - 5PM
Pythonでは関数の引数にそれとは別の関数を設定して使うことが可能です。今回はその方法について解説します。
まず次のコードを見てください。
Contents
#関数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
addition( )としてしまうと、エラーが出ます。
なぜなら、関数additionは、
def addition(x, y):
というように、引数を2つとる設定で宣言していますので、単にaddition( )としてしまうと、引数の設定と不一致が発生して不適切だからです。
addition(2, 3)としてしまうと、その部分につき、まずは関数additionが引数「2」と「3」をとったまま実行されます。
そうするとその結果は「5」という数字になります。その数字「5」が関数resultの引数となります。関数が引数になりません。
結果、fnc=5となり、print(5(2,3))となってしまうので、これはおかしいですよね。よってエラーが出ます。
以上、Pythonにおいて関数の引数に関数を設定する方法・使い方の基本的な解説でした。上のエラーが発生する両方の場合について、実際にみなさんも設定してみてエラーが出ることを確かめてみてください。理解がはかどると思います。
【今回の記事と関連する記事】
プログラミングを学びIT業界へ転職するなら現役エンジニアから学べるプログラミングスクールTechAcademy [テックアカデミー]でオンライン講座を受講するのが良いと思います。1人で悩みながら学習を進めるよりもわかりやすく、費やす時間も少なく合理的・効率的に学習できるからです。
など各種の講座が用意されています。無料で体験できるテックアカデミー無料体験も用意されています。