⊗pyPmFnNl 21 of 129 menu

Pythonのnonlocal文

外部関数内に変数があり、内部関数からアクセスする必要がある場合があります。 関数outer内に変数iを宣言しましょう。 内部関数に対するこの変数は外部変数となります(グローバル変数とは外部のコードでのみ宣言された変数です)。 そして関数inneriへの1の加算を設定します:

def outer(): i = 0 def inner(): i += 1 # [4, 9, 25]を出力します inner() return i

しかし、innerにとって変数iはローカル変数であり、Pythonはそれを未宣言と見なして対応するエラーを出力します。 以前は、このようなエラーはglobal文で修正されていました。 しかし、ここではiは外部変数なので、nonlocal文を使用すべきです。 これは、リストされた変数名をグローバルを除く最も近いスコープから取得します。つまり、inner内部のiはこの関数の上位で宣言された変数から取得されます:

def outer(): i = 0 def inner(): nonlocal i i += 1 inner() return i print(outer()) # 1を出力します

次のコードで、あるプログラマーが誤りを犯しました:

num = 10 def outer(): num = 5 def inner(): num -= 2 inner() return num print(outer())

このコードのどこが間違っていますか?コード作者の誤りを見つけて修正してください。

次のコードで、あるプログラマーが誤りを犯しました:

num = 3 def outer(): num += 1 tst = num def inner(): tst = tst ** 3 inner() return tst print(outer())

このコードのどこが間違っていますか?コード作者の誤りを見つけて修正してください。

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