ホームページ  >  記事  >  バックエンド開発  >  関数内のグローバル変数を変更するために Global キーワードを使用することが重要なのはなぜですか?

関数内のグローバル変数を変更するために Global キーワードを使用することが重要なのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-19 12:09:01582ブラウズ

Why is it Important to Use the Global Keyword to Modify Global Variables in Functions?

関数内のグローバル変数の変更を理解する

プログラミングでは、グローバル変数はプログラム内のすべての関数で共有されます。関数内のグローバル変数を変更すると、その変更がプログラム全体に反映される必要があります。ただし、次のシナリオに示すように、特定の状況によって予期しない動作が発生する可能性があります。

問題:

以下のコード スニペットがあるとします:

<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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。