pythonの名前空間について質問させて頂きます。
do_local()を呼び出した時に変数はdef scope_test()内の関数ということもありspam = "test spam"がかえってきているのは理解できるんですが、pythonはdefで関数ができるというところでdef do_localは関数ではないのでしょか?
お手数ですがご教授頂けたら幸いです。
python
1def scope_test(): 2 def do_local(): 3 spam = "local spam" 4 5 def do_nonlocal(): 6 nonlocal spam 7 spam = "nonlocal spam" 8 9 def do_global(): 10 global spam 11 spam = "global spam" 12 13 spam = "test spam" 14 15 do_local() 16 print("After local assignment:", spam) 17 18 do_nonlocal() 19 print("After nonlocal assignmennt:", spam) 20 21 do_global() 22 print("After global assignment:", spam) 23 24scope_test() 25print("In global scope:", spam) 26 27出力結果 28After local assignment: test spam 29After nonlocal assignmennt: nonlocal spam 30After global assignment: nonlocal spam 31In global scope: global spam
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/06/18 01:00
2021/06/18 01:52
2021/06/18 01:54
2021/06/18 02:24
2021/06/18 02:59
2021/06/18 04:08 編集
2021/06/18 03:07 編集
2021/06/18 03:17
2021/06/18 03:19
2021/06/18 03:41