⊗pyPmFnFIF 20 of 129 menu

Pythonにおける関数内関数

Pythonでは、ある関数の内部で他の関数を宣言することができます。 外部関数 outer があり、その内部に関数 inner があるとします:

def outer(): def inner(): pass

上記の例は十分にシンプルに見えます。 しかし、多くの場合、関数 outer の本体では、 inner 以外の操作も実行されます。 コードを簡略化するために、inner を外部のコードブロックに 移動することも考えられますが、この関数は一度だけ、 しかも関数 outer の内部でのみ使用されます。 したがって、そのスコープ外に出す意味はありません。

関数 outer にリストが渡され、 関数 inner を使用してリストの数値要素を 2乗する例を見てみましょう。 このため、関数 inner の後に空のリスト res を宣言し、 ループ内で2乗された要素を累積していきます:

def outer(lst): def inner(num): return num ** 2 res = [] for el in lst: res.append(inner(el)) return res

関数 outer を呼び出し、 パラメータとしてリストを渡して結果をコンソールに出力してみましょう:

print(outer([2, 3, 5])) # [4, 9, 25] を出力

リストの各文字列要素を大文字で始まるように出力する、 外部関数と内部関数を作成してください。

以下の関数が与えられています:

def func1(num): if num > 0: num += 2 return num def func2(iter): res = [] for el in iter: res.append(func1(el)) return res

func1func2 の内部関数となるようにコードを書き直してください。

日本語
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItalianoქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否