Pythonのグローバル変数スコープを理解する

Understand Global Variables Scope Python



ほとんどのプログラミング言語では、2種類の変数を定義できます。これらはグローバル変数とローカル変数です。関数の外部で定義される変数は、グローバル変数と呼ばれます。この変数は、スクリプト内のどこからでもアクセスおよび変更できます。関数内で宣言される変数は、ローカル変数と呼ばれます。ただし、グローバル変数とローカル変数と同じ変数名が存在する場合、関数内の変数が優先され、グローバル変数の値は無視されます。このチュートリアルでは、さまざまな例を使用して、Pythonスクリプトのグローバル変数のスコープを示します。

例-1:グローバル変数の簡単な使用

次の例は、関数内および関数外のグローバル変数の簡単な使用法を示しています。ここでは、 文章 文字列データを割り当てるために使用されます。名前の付いたカスタム関数 printMessage() グローバル変数の値を出力するように定義されています。の値 文章 変数は、値を変更した後、関数の内部と関数の外部に出力されます。







#!/ usr / bin / env python3

#グローバル変数を定義する
文章= 「LinuxHintへようこそ」

#関数を定義する
defprintMessage(()。

#関数からグローバル変数を出力します
印刷(('関数内のグローバル変数:NS'文章)。

#関数を呼び出す
printMessage(()。

#グローバル変数の値を変更します
文章= 「Pythonプログラミングを学ぶ」

#グローバル変数の現在の値を出力します
印刷(('関数外のグローバル変数:NS'文章)。

出力:



スクリプトの実行後、次の出力が表示されます。値を出力しました。 LinuxHintへようこそ」 これは、関数を呼び出す前に変数に割り当てられます。次に、値を出力しました。 「Pythonプログラミングを学ぶ」 変数の値を変更した後。







例2:同じ名前のグローバル変数とローカル変数の使用

以前にpythonでグローバル変数として宣言されている関数内で変数名を宣言し、その変数を使用する場合は、変数をローカル変数として扱い、エラーを生成します。次のスクリプトはエラーを表示します。ここ、 テキスト 変数は、グローバル変数およびローカル変数として定義されます。

#!/ usr / bin / env python3

#グローバル変数を定義する
文章= 「私はPythonが好きです」

#関数を定義する
defprintMessage(()。
印刷((文章)。

文章= 「私はPHPが好きです」

#関数を呼び出す
printMessage(()。

出力:



スクリプトの実行後、次の出力が表示されます。

上記の状況を回避し、グローバル変数と同じ名前のローカル変数を宣言する場合は、最初に関数内でローカル変数を割り当てる必要があります。次のスクリプトは、ローカル変数を変更してもグローバル変数は変更されないことを示しています。 文章 ここでは、変数が関数の内外に出力されます。

#!/ usr / bin / env python3

#グローバル変数を定義する
文章= 「私はPythonが好きです」

#関数を定義する
defprintMessage(()。
#ローカル値を定義する
文章= 「私はPHPが好きです」
#ローカル変数、テキストを出力します
印刷((関数内の「text」の値:NS'文章)。

#関数を呼び出す
printMessage(()。

#グローバル変数、テキストを出力します
印刷((関数外の「text」の値:NS'文章)。

出力:

スクリプトの実行後、次の出力が表示されます。

例-3:関数内でのグローバル変数の使用

前の例は、グローバル変数が関数内でアクセスできないことを示しています。あなたが使用することができます グローバル 任意の関数からグローバル変数にアクセスするためのキーワード。次のスクリプトでは、 cal_percentage() 関数は、グローバル変数とローカル変数の両方が使用されている任意の数値のパーセンテージを計算するために定義されています。ここ、 1つに はグローバル変数であり、 perVal ローカル変数です。 グローバル ここでは、キーワードを使用して関数内のグローバル変数を識別し、グローバル変数の値を関数内で変更します。

#!/ usr / bin / env python3

#整数値を取る
1つに= int((入力(('番号を入力してください:')。)。

#関数を定義する
defcal_percentage(()。
#グローバルキーワードを使用してグローバル変数を認識します
グローバル1つに

#整数値をパーセンテージで取得します
perVal= int((入力(('パーセンテージ値を入力してください:')。)。

#パーセンテージ値を計算する
結果= 浮く((((* perValかどうか)。/100)。

#フォーマットされた結果を出力する
印刷(('%dの%dパーセンテージ=%f'((perVal1つに結果)。)。

#グローバル変数の値を変更する
1つに= 500

#関数を呼び出す前にグローバル変数の値を出力します
印刷(('NSnum =%d 'の値%on one)。

#関数を呼び出す
cal_percentage(()。

#関数を呼び出した後、グローバル変数の値を出力します
印刷(('NSnum =%d 'の値%on one)。

出力:

スクリプトの実行後、次の出力が表示されます。ここでは、350の10%が計算され、印刷されます。

例-4:別のスクリプトからのグローバル変数の使用

次の例は、あるスクリプトで宣言されたグローバル変数を別のスクリプトで使用する方法を示しています。ファイル名が global6.py これは、という名前のファイルで定義されたグローバル変数を使用します global5.py 。 3つのグローバル変数がで宣言されています global5.py 。インポートする必要があります global5 別のスクリプトで変数を使用します。のスクリプト global6.py 入力値とグローバル変数に基づいて、3種類の従業員の給与を計算します。

#!/ usr / bin / env python3
#これはglobal5.pyファイルです

#会社の基本給構造
基本= 5000
医学= 500
輸送= 500 #!/ usr / bin / env python3
#これはglobal6.pyファイルです

#global5.pyからグローバル変数をインポートします
輸入global5

#従業員の名前を取る
名前= 入力(('従業員名を入力してください:')。
#投稿名を取得
役職= 入力(('投稿を入力してください:')。

#エラー変数を初期化します
エラー= NS

#投稿を確認し、投稿に基づいて基本給を設定します
もしも((役職。アッパー(()。 == '最高経営責任者(CEO')。
基本=グローバル5。基本+((グローバル5。基本*0.4)。
エリフ((役職。アッパー(()。 == 'マネジャー')。
基本=グローバル5。基本+((グローバル5。基本*0.25)。
エリフ((役職。アッパー(()。 == '会計士')。
基本=グローバル5。基本+((グローバル5。基本*0.15)。
そうしないと
#投稿値が見つからない場合はエラーをtrueに設定します
エラー= NS

#エラーがフレアの場合は給与を印刷します
もしも ((エラー== NS)。
給料=ベーシック+グローバル5。医学+グローバル5。輸送
印刷((「%sの給与は%dです」((名前給料)。)。
そうしないと
印刷((「投稿が見つかりません」)。

出力:

スクリプトの実行後、次の出力が表示されます。ここでは、スクリプトは有効な投稿と無効な投稿で2回実行されます。

結論:

このチュートリアルでは、Pythonのグローバル変数の概念について、新しいPythonユーザー向けのさまざまな簡単な例を使用して説明します。このチュートリアルを読んだ後、読者がグローバル変数とローカル変数について適切な知識を身に付けてくれることを願っています。

著者のビデオを見る: ここ