Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonでグローバル変数を宣言する方法!globalキーワードの基本と実例を解説

グローバル変数とは何か?

グローバル変数(大域変数)とは、プログラム全体で有効なスコープを持つ変数のことです。別の場所で同じ名前の変数によって上書き(シャドウイング)されない限り、プログラム内のどこからでも参照・アクセスできます。すべてのグローバル変数の集合は、プログラムの「グローバル環境」または「グローバルスコープ」と呼ばれます。

Pythonでは、変数名の前に global キーワードを付けることで、その変数をグローバル変数として宣言できます。

なお、すべての変数には「宣言・定義されたブロック」がスコープとして適用されます。つまり、変数は宣言された位置より後のコードでのみ使用可能である点に注意しましょう。

サンプルコード:グローバル変数の宣言例

以下は、関数内で global キーワードを使ってグローバル変数を宣言し、値を書き換える例です。

def f():
    global s
    print(s)
    s = "Only in spring, but Miami is great as well!"
    print(s)

s = "I am looking for a course in New York!"
f()
print(s)

実行結果

I am looking for a course in New York!
Only in spring, but Miami is great as well!
Only in spring, but Miami is great as well!

コードの解説

このコードの流れを順番に見ていきましょう。

  1. まず、グローバルスコープで s に「I am looking for a course in New York!」という文字列が代入されます。
  2. 関数 f() が呼び出されると、global s の宣言により、関数内の s はローカル変数ではなくグローバル変数そのものを指すことになります。
  3. そのため、関数内で最初に出力されるのは、グローバルで定義された元の文字列です。
  4. 続いて s に新しい文字列を代入すると、これはグローバル変数自体が書き換えられます。

最後の print(s) でも新しい文字列が出力されていることから、関数内での変更がプログラム全体に反映されていることが分かります。もし global 宣言がなければ、関数内での代入はローカル変数の作成となり、外部の s には影響しません。

まとめ

  • グローバル変数はプログラム全体からアクセスできる変数である。
  • 関数内からグローバル変数を変更したい場合は、global キーワードを使って宣言する。
  • global を付け忘れると、代入はローカル変数の扱いになり、意図しない動作の原因になる。

グローバル変数は便利な一方、多用するとコードの可読性や保守性が低下するため、必要最小限の利用にとどめるのが良い設計とされています。

  1. PHPでグローバル変数を宣言する方法をわかりやすく解説

    グローバル変数とはグローバル変数とは、プログラム内のどこからでもアクセスできる変数のことです。しかし、PHPでは関数の中からグローバル変数を変更したい場合、その関数内で明示的に「これはグローバル変数である」と宣言しなければなりません。この宣言は、変数の前に global キーワードを置くだけで簡単に行えます。例1:globalキーワードで変数を書き換える以下のコードでは、PHPでグローバル変数を宣言し、関数内から値を変更する方法を確認できます。<?php    $val = 1;    function di

  2. PythonのMatplotlibでplt.title()に変数を組み込む方法

    PythonのMatplotlibでplt.title()に変数を組み込みたい場合、いくつかの簡単なステップで実現できます。ここでは、変数numの値をグラフのタイトルに動的に反映させる方法を解説します。 実装の手順 numpyを使ってxとyのデータポイントを作成します。変数numを用いてyの値を計算し、この値をタイトルに設定します。 plot()メソッドを使って、xとyのデータポイントを赤色(c=red)でプロットします。 曲線のタイトルに変数numを含めて設定します。文字列フォーマット(%記法やf文字列)を活用することで、変数の値をタイトルに埋め込めます。 図を画面に表示するには、show