Python初心者です。
関数の入れ子でふと気になってみて、コードを書いてみたのですがエラーになった原因が理解できないことがありましたので、質問させていただきます。
関数を3重に入れ子する構造を試していました。下記コードは実行可能でした。
python3
1def outer(): 2 def inner(): 3 print('I am inner') 4 def inner2(): 5 print("I am inner2") 6 inner2() 7 inner() 8 9outer() 10 11実行結果 12I am inner 13I am inner2
下記コードだとエラーになってしまいました。
python
1def outer(): 2 def inner(): 3 print('I am inner') 4 def inner2(): 5 print("I am inner2") 6 inner() 7 inner2() 8 9 10outer() 11 12実行結果 13Traceback (most recent call last): 14 File "<pyshell#81>", line 1, in <module> 15 outer() 16 File "<pyshell#80>", line 7, in outer 17 inner2() 18NameError: name 'inner2' is not defined 19
エラー内容を見るとouterはinner2を参照できていないようです。
これはinner2()はinner()のローカル関数だから、outerからはアクセスできないという理解でいいのでしょうか?
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。