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() にも当てはまります。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。