#
6.13 `global` 文

  `global_stmt` | ::= | `"global" identifier ("," identifier)*`

  Download entire grammar as text.

`global` 文は、現在のコードブロック全体で維持される宣言文 です。`global` 文は、列挙した識別子をグローバル変数として 解釈するよう指定することを意味します。 `global` を使わずにグローバル変数に代入を行うことは 不可能ですが、自由変数を使えばその変数をグローバルであると宣言せずに グローバル変数を参照することができます。

`global` 文で列挙する名前は、同じコードブロック中で、 プログラムテキスト上 `global` 文より前に使っては なりません。

`global` 文で列挙する名前は、`for` ループの ループ制御ターゲットや、`class` 定義、関数定義、 `import` 文内で仮引数として使ってはなりません。

(現在の実装では、後ろ二つの制限については強制していませんが、 プログラムでこの緩和された仕様を乱用すべきではありません。 将来の実装では、この制限を強制したり、暗黙のうちにプログラム の意味付けを変更したりする可能性があります。)

プログラマのための注意点: `global` はパーザに対する指示句 (directive) です。 この指示句は、`global` 文と同時に読み込まれたコード に対してのみ適用されます。特に、`exec` 文内に入っている `global` 文は、`exec` 文を 含んでいる コードブロック内に効果を及ぼすことはなく、`exec` 文内に 含まれているコードは、`exec` 文を含むコード内での `global` 文に影響を受けません。同様のことが、関数 `eval()`、 `execfile()` 、および `compile()` にも当てはまります。