関数内関数(inner function)とは?


はじめまして、こんにちは。

この記事がなんと初投稿です!🎉

Pythonを初めて間もなく、間違った解釈をしてしまうかもしれませんが、皆さんの参考になればと思います。
もちろん間違った説明のないように細心の注意を払って文章を書いていきます。

では、早速タイトルにもあるように関数内関数について説明していきます。

関数内関数とは?

関数内関数はその文字の通り、関数の中に関数が入っていることです。
本当に名前のまんまです笑

イメージとしてはマトリョーシカみたいに人形の中に人形が入っているみたいな感じです。

実際にコードを書いて見ていきましょう

説明だけでは分かりにくいと思うので、実際にコードを使って見ていきましょう。

qita.py
def outer(a,b):
    def inner(c,d):
        return c - d
    r = inner(a,b)
    print(r)
outer(3,2)
実行結果
3 - 2 = 1
1

名前の通り関数の中にさらに関数を定義されていますね!

どのようにプログラムが動いているのか見ていきましょう!

①1行目で外側のouter関数を宣言しています。そして3と2がouter関数のa,bに入ってきます。

②2行目で内側のinner関数を宣言しています。
inner関数は、c-d をして返す関数になっています。outer関数に入った3と2がinner関数でも定義されています。

③そして、返り値をrに入れてあげて出力しています。
printすると、1が出力されます。

というのが一連の流れです。

何のために関数内関数を使うの?

ここで疑問に思うことが何のために関数内関数を使うのかと言うことです。

大きく分けると2つあります。
「その処理を関数の中でしか使いたくないとき」と「その処理を別の関数から呼ばれないようにしたいとき」です。

なんか束縛の強い彼氏みたいな感じですね!笑

以上が関数内関数の説明でした!

最後に

本日は最後まで見ていただきありがとうございました!
どちらかというと理系の人間ですので、文章を書ことがこんなに難しいのかと驚いています。

これからもプログラミングで覚えた用語やコードなど覚えたらここでアウトプットしていこうと思うので是非見てくださいね!

では、ばいばい😊