python3 チュートリアルを勉強中ですが、以下の例で(3)と(4)がなぜその答えになるのか分かりません。ご説明いただけますと幸いです。
コード def scope_test(): def do_local(): spam = "local spam" def do_nonlocal(): nonlocal spam spam = "nonlocal spam" def do global(): global spam spam = "global spam" spam = "test spam" do_local() print("After local assingment:", spam) do nonlocal() print("After nonlocal assingment:", spam) do_global() print("After global assignment:, spam) scope_test() print("In global scope:", spam) 出力 After local assingment: test spam ...........(1) After nonlocal assignment: nonlocal spam ....(2) After global assignment: nonlocal spam .....(3) IN global scope: global spam .............(4)
(3)なぜnonlocalになるのでしょうか?global spam で定義しなおしているのでglobal spamではないでしょうか?
(4)なぜglobal spamになるのかわかりません。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー