Aは:グローバル:参照は、/関数内のグローバル変数を宣言します
あなたがグローバル変数の内容を変更しない場合は、カスタム機能では、時にはあなたは、あなたが直接このように、参照することができ、関数の外部でいくつかのグローバル変数を参照する必要があります。
C = 999 DEF FUNC(): プリント(c)の 場合__name__ == ' __main__ ' : FUNC()
変数cの出力値のみ関数が戻ると、Cので文句はありません、変更を行いません。あなたが関数内でグローバル変数を変更したい場合はしかし、あなたが使用する必要があるグローバルなキーワードを、
C = 999 デフFUNC() のための I における範囲(10 ): C + = 1 なら__name__ == ' __main__ ' : FUNC()プリント(C)。
上記のコードは、この変数FUNCのC関数を変更しようとしますが、次のエラー:
UnboundLocalError:ローカル変数「C 」の割り当ての前に参照さ
意味は:代入する前に、ローカル変数を参照します。グローバル次のようにキーワードは、この問題を解決することができます。
= 999 C DEF FUNC(): グローバル Cの #は、変更前のグローバルなキーワードを使用するために私にレンジ(10 ): C + = 1。 IF __name__ == ' __main__ ' : FUNC()印刷(C)
加えて、グローバル変数で私たちを助けることができる世界では、以下のように、関数内で宣言しました:
DEF FUNC(): グローバル・ Cの #グローバル変数では、内で宣言 = 100 C IF __name__ == ' __main__ ' : FUNC()印刷(C)
2:ローカル以外のキーワード
類似で非ローカルグローバル演技が、グローバル社内関数参照/グローバル変数を変更し、参照がnonloca /内層(非グローバル変数)関数定義されたローカル変数、外部関数を変更することです。この現象は閉鎖となっています。
DEF FUNC(): C = 100 DEFのFOO() のための I における範囲(10): #外層変更するC変数関数 。C + 1 = FOO() プリント(C) IF __name__ == ' __main__ ' : FUNC ()
次のように与えられました:
UnboundLocalError:ローカル変数「C 」の割り当ての前に参照さ
上記のエラーと同じですが、この時間は、もはや世界的なキーワードを使用することはできませんし、使用する非ローカルキーワードを(あなたがグローバルを使用する場合は、新しい変数の等価であると宣言しました)
DEF FUNC(): C = 100 DEFのFOO(): 非局所C のための I における範囲(10): #1 外層変更するC変数関数 C + 1 = FOO() プリント(C) IF __name__ == ' __main__ ' : FUNC()
これは与えられていない、出力は110です。
全体:グローバルキーワードはグローバル変数や他のローカルスコープを使用して関数内で使用されています。あなたが宣言するために世界的なキーワードに適用されない場合があり、グローバル変数を使用しない場合でも、ローカル以外のキーワードは、機能または別のスコープで外(非グローバル)変数を使用します。
****************短いステップ千マイル****************