プログラミングでは、グローバル変数はプログラム内のすべての関数で共有されます。関数内のグローバル変数を変更すると、その変更がプログラム全体に反映される必要があります。ただし、次のシナリオに示すように、特定の状況によって予期しない動作が発生する可能性があります。
問題:
以下のコード スニペットがあるとします:
<code class="python">done = False def function(): for loop: code if not comply: done = True #let's say that the code enters this if-statement while done == False: function()</code>
このコードは、関数内で Done 変数が True に設定されている場合に while ループを終了しようとしているようです。ただし、この問題は、function() がグローバル Done 変数を適切に変更しない場合に発生し、その結果、while ループが無限に継続することになります。
解決策:
問題関数のスコープ内にあります。関数は独自の名前空間を作成します。つまり、function() 内の Done 変数はローカルに作成され、グローバルの Done 変数と同じではありません。グローバルの Done 変数にアクセスして変更するには、次の global キーワードを使用する必要があります。
<code class="python">def function(): global done for loop: code if not comply: done = True</code>
グローバル Done を使用すると、function() 内で行われた Done 変数への変更がグローバル変数に影響し、関数からの終了がトリガーされます。 True に設定されている場合の while ループ。
説明:
global キーワードは、関数などのローカル スコープ内からグローバル変数を宣言および変更するために使用されます。 。これにより、関数は新しいローカル コピーを作成する代わりに、元の変数を操作できるようになります。グローバル Done を使用すると、関数はグローバル Done 変数を変更し、関数の外部からその変更にアクセスできるようになります。
以上が関数内のグローバル変数を変更するために Global キーワードを使用することが重要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。