スキルUPの道しるべ

本サイトはプロモーションを含みます
上に戻る

【Python】『defの中にdef』関数内に関数を定義する方法を例付きで解説!

Pythonでは、関数内に別の関数を定義することができます。
この記事では、その方法について詳しく解説し、コード例を交えて解説していきます。

def文がわかる!おすすめ記事

『defの中にdef』、関数内に関数を定義する方法の確認の前に、以下の解説記事を見ると、より理解がしやすくなります。

def文の書き方をステップごとに解説!:
torus07.hatenablog.com

関数内に関数を定義する方法(defの中にdef)

関数内に関数を定義する方法は非常にシンプルです。
外側の関数内で、内側の関数を定義します。以下に、具体的なコード例を示します。

def outer_function():
    print("Outer function")

    def inner_function():
        print("Inner function")

    inner_function()  # 内側の関数を呼び出す

# 外側の関数を呼び出す
outer_function()

上記のコードを実行すると、次のような結果が得られます。

Outer function
Inner function


コードの解説
上記の例では、outer_function内でinner_functionが定義されています。
そして、outer_function内でinner_functionが呼び出されています。
これにより、関数内に関数(defの中にdef)を定義し、利用することができます。

コード例+

以下に、defの中にdefを使う、より具体的な例を挙げます。

def calculate_area(radius):
    # 外側の関数
    pi = 3.14159

    def square(num):
        # 内側の関数
        return num * num

    def circle_area(r):
        # 内側の関数
        return pi * square(r)

    return circle_area(radius)

# 半径が5の円の面積を計算
area = calculate_area(5)
print("円の面積:", area)

この例では、calculate_area関数内でsquareとcircle_areaが定義されています。
そして、circle_area内でsquareが呼び出されています。
これにより、円の面積を計算する関数が階層化されています。

上記のコードを実行すると、次のような結果が得られます。

円の面積: 78.53975

おすすめ書籍

Pythonプログラミングを手を動かしながら学びたい方に、『独習Python』がおすすめです。
この書籍は、プログラミング初心者向けにわかりやすく丁寧に解説がされており、独習用に使用することができます。
Pythonの基本から標準ライブラリ、オブジェクト指向構文、モジュールまで幅広く解説されており、サンプルプログラムを例示しながら丁寧に説明されています。
初心者から再入門者、学生など、Python言語をしっかり身につけたい方にお勧めの一冊です。

まとめ

この記事では、Pythonで関数内に関数を定義する方法について解説しました。
関数内に関数を定義することで、コードをより階層化し、読みやすくメンテナンスしやすくすることができます。
是非、これらのテクニックを活用して、効率的なPythonコードを書いてみてください。