目次
(確認環境: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)が表示されます。
関連の記事
