回答編集履歴

1

参照追加

2021/12/19 11:17

投稿

ppaul
ppaul

スコア24670

test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- そこまじめに考えて方が良いでしょう。
5
+ そこを解決するにはまじめに考えて方が良いでしょう。
6
6
 
7
7
 
8
8
 
@@ -35,3 +35,15 @@
35
35
  ```
36
36
 
37
37
  のように、global宣言を入れれば、```local variable referenced before assignment``` のエラーは出なくなります。
38
+
39
+
40
+
41
+ [公式ドキュメント 4. 実行モデル 4.2. 名前づけと束縛 (naming and binding)](https://docs.python.org/ja/3/reference/executionmodel.html#naming-and-binding)には以下のように書かれています。
42
+
43
+
44
+
45
+ ある名前がブロック内で束縛されているなら、 nonlocal や global として宣言されていない限り、それはそのブロックのローカル変数 (local variable) です。 ある名前がモジュールレベルで束縛されているなら、その名前はグローバル変数 (global variable) です。 (モジュールコードブロックの変数は、ローカル変数でも、グローバル変数でもあります。) ある変数があるコードブロック内で使われていて、そのブロックで定義はされていないなら、それは自由変数 (free variable) です。
46
+
47
+
48
+
49
+ これをよく読むとわかるのですが、最初は難しいかもしれません。