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

Pythonでグローバル変数を宣言する方法!globalキーワードの使い方を徹底解説

グローバル変数とは?

グローバル変数とは、関数の外側で宣言された変数であり、関数の内側でも利用できる変数のことです。

サンプルコード

def func():
    print(a)
a = 10
func()

出力結果

10

この例では、変数 a は関数の外側で宣言されているため、グローバル変数として扱われます。関数の中からでも参照できるため、変数 a のスコープ(有効範囲)はプログラム全体に及びます。

関数内で同名の変数を定義するとどうなる?

次に、関数の中でグローバル変数と同じ名前の変数を新しく作った場合の挙動を見てみましょう。

上記の例のように、変数 a が関数の外側で宣言されていれば、それはグローバル変数です。しかし、関数内で同じ名前の変数に別の値を代入すると、その変数は関数固有のローカル変数として扱われ、そのスコープは関数内だけに限定されます。関数の外側では、グローバル変数は元の値を保持し続けます。

具体例で確認してみましょう。

サンプルコード

a = 10

def func():
    a = 5
    print("Inside function:", a)

func()
print("Outside function:", a)

出力結果

Inside function: 5
Outside function: 10

この例では、最初に変数 a が値 10 のグローバル変数として宣言され、その後に関数 func() が呼び出されています。

関数 func() の内部では、別の値を持つ同名の変数 a が宣言されていますが、この変数のスコープは関数内のみに限定されます。そのため、関数の実行後に外部で変数 a の値を出力すると、グローバル変数の元の値である 10 が表示されるのです。

globalキーワードとは

global キーワードは、関数の中でグローバル変数を宣言したい場合に使用します。

通常、関数内で宣言された変数のスコープは、その関数が終了するまでに限られます。しかし、関数の外側でもその変数を使用したい場合は、変数を宣言する際に global キーワードを付ける必要があります。

両者の違いを、実際のコード例で理解しましょう。

サンプルコード(globalキーワードなし)

def func():
    a = 5
    print("Inside function:", a)

func()
print("Outside function:", a)

出力結果

Inside function: 5
Traceback (most recent call last):
  File "example.py", line 5, in <module>
    print("Outside function:", a)
NameError: name 'a' is not defined

この例では、変数 a はローカル変数であるため、関数の外側からその値にアクセスすることができません。そのため、関数の外で変数 a を参照しようとすると、NameError という例外が発生します。

globalキーワードの使い方

上記の例で発生した例外は、変数 a を global キーワードを使って宣言することで解決できます。

サンプルコード(globalキーワードあり)

def func():
    global a
    a = 5
    print("Inside function:", a)

func()
print("Outside function:", a)

出力結果

Inside function: 5
Outside function: 5

この例では、変数 a が global キーワードによってグローバル変数として宣言されているため、関数の外側からでもその値にアクセスできるようになっています。

まとめ

  • 関数の外で宣言された変数はグローバル変数となり、関数内外のどこからでも参照できます。
  • 関数内で同名の変数に代入すると、それはローカル変数として扱われ、関数の外にあるグローバル変数には影響しません。
  • 関数内からグローバル変数を定義・変更したい場合は、global キーワードを使用します。
  1. Python Matplotlibで多変量関数をプロットする方法

    Pythonで多変量関数(複数の変数を持つ関数)を視覚的に表現したい場合、Matplotlibの散布図を活用すると、x・y・zの3つの変数の関係を1つのグラフ上で直感的に把握できます。ここでは、具体的な手順とサンプルコードを交えて解説します。実装の手順図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。NumPyを使って、ランダムな x、y、z のデータ点を生成します。図(figure)とサブプロット(axes)のセットを作成します。x・y・z のデータ点をもとに散布図を描画します。ScalarMappableインスタンス s に対してカラーバーを作成し、z値の色の対

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

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