この記事では、その方法について詳しく解説し、コード例を交えて解説していきます。
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