Python ローカル変数とグローバル変数

目次

(確認環境:Python 3)

ローカル変数とグローバル変数

  • ローカル変数は関数の中にある変数です。変数を宣言した関数内でのみ利用できます。
  • グローバル変数は関数の外にある変数です。
  • 変数が通用する範囲のことをスコープといいます。
  • 別々の関数のローカル変数は同じ変数名でも可です。
  • グローバル変数とローカル変数は同じ変数名でも可です。

ローカル変数とグローバル変数を使用したサンプルです。

a = "123" #グローバル変数

def test1():
	b = "456" #ローカル変数
	return b

print(a)  # 123
# print(b)  # name 'b' is not defined
print(test1())  # 456

7行目は、グローバル変数の値を表示しています。
8行目は、4行目の変数bが関数の中にあるのでアクセスできずエラーになります。
9行目は、関数test1を実行して戻り値の値を表示しています。

関数内からグローバル変数を参照する

関数内から直接グローバル変数を参照するサンプルです。

a = "123" # グローバル変数

def test1():
	return a

print(a) # 123
print(test1()) # 123

4行目の変数aは、1行目のグローバル変数を参照しています。関数内からグローバル変数の参照はできます。
6行目は、グローバル変数の値を表示しています。
7行目は、関数test1を実行し値を返します。

グローバル変数の値を変更する(global)

グローバル変数の値を変更するサンプルです。

a = "123" #グローバル変数

def test1():
	global a
	a = "ABC"
	return a

print(test1()) # ABC
print(a) # ABC

4行目は、変数の前にglobalを付けています。
5行目は、変数aに値を代入しています。このとき1行目のグローバル変数の値も変更されます。
8行目は、関数内でセットされた値(ABC)が表示されます。
9行目は、7行目でグローバル変数の値が変わったためこちらも値(ABC)が表示されます。
4行目をコメントにした場合9行目は値(123)が表示されます。

関連の記事

Python 関数のサンプル(def)

△上に戻る