関数内からグローバルスコープにアクセスするためにglobal
宣言があります。グローバルスコープでもglobal
宣言はできますが、無意味です。
また、ローカル変数とグローバル変数の区別は(というか変数の属するスコープの決定は)、その変数に対してスコープ内で代入が行われているかどうかが基準になることにも注意してください。同名のローカル変数を作らない(同名のローカル変数に対して代入しない)限りは上位スコープの変数が見えているので、global
宣言しなくてもグローバル変数が見えるときはあります
python
1global hoge # 無意味
2hoge = None # グローバル変数
3
4def func1(): # 宣言しなくても上位スコープのグローバル変数はそのまま見える
5 print(hoge)
6
7def func2(): # 宣言を行うと代入操作も可能になる
8 global hoge
9 hoge = 1
10
11def func3(): # 宣言なしだとローカル変数hogeに対して代入するだけ
12 hoge = 2
13
14
7. 単純文 (simple statement) — Python 3.8.3 ドキュメント
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。