⊗pyPmFnIFN 22 of 129 menu

Pythonにおける内部関数の扱いに関する注意点

Pythonでは、ネストされた関数があるだけでなく、ある関数が別の関数を返すこともできます。例えば、関数outerが関数innerのソースコードを結果として返すとします:

def outer(): def inner(): return '+++' return inner

変数resに関数outerの呼び出しを代入してみましょう:

res = outer() print(res)

コードを実行すると、関数オブジェクトが出力されます:

<function outer.<locals>.inner at 0x000001564A212B90>

変数resを括弧付きで呼び出すと、メッセージ'+++'が返されます:

print(res()) # '+++'を出力

コードを、resouter自体の呼び出しと関数innerの呼び出しのために二重の括弧を付けて代入するように書き換えることができます。これは、外側の関数の右側に、その中にネストされた関数の数に応じた追加の括弧を書けることを意味します:

res = outer()() print(res) # '+++'を出力

次のコードが与えられています:

def outer(): def inner(num): return num + 2 return inner res = outer()(3) print(res)

コンソールに何が出力されるか答えなさい。

次のコードが与えられています:

def outer(): def inner(txt): return 'hello, ' + txt return inner res = outer() print(res)

コンソールに何が出力されるか答えなさい。

日本語
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
当サイトでは、サイトの動作、分析、パーソナライゼーションのためにクッキーを使用しています。 データ処理はプライバシーポリシーに従って行われます。
すべて受け入れる 設定 拒否