グローバル変数
グローバル変数 = プログラム全体を通じて共通の値を参照できるもの
⇔ ローカル変数 = 特定処理の内部からしか参照できないもの
code:python
# 関数定義でもない一番浅いインデント箇所に書かれたこれらは【グローバル変数】
x = 1
y = 3
def sum(x, y): # このx,yは【ローカル変数】、関数の外に書かれたx, yとは区別される
print(x, y)
return x + y
r = sum(5, 10) # print(x, y)が内部で実行されるが、表示されるのは 1,3? それとも5, 10?
print(r)
→ 実行結果はこうなる
https://gyazo.com/67e9bca858ab101fd34a69ffa01fdd6e
code:python
# 関数定義でもない一番浅いインデント箇所に書かれたこれらは【グローバル変数】
x = 1
y = 3
def sum():
print(x, y)
return x + y
r = sum() # この実行はエラーになる?ならない?
print(r)
→ 参照だけであれば、ローカル変数として未定義の場合は暗黙的にグローバル変数を参照してくれるので動作する
https://gyazo.com/a6e25d75ce81b36a0e984471e1b7f4f7
code:python
# 関数定義でもない一番浅いインデント箇所に書かれたこれらは【グローバル変数】
x = 1
y = 3
def increment():
x += 1
increment() # この実行はエラーになる?ならない?
print(x)
→ グローバル変数を暗黙的に呼び出して「書き換える」ことは許されない
→ global x が必要
https://gyazo.com/6bf012d33c61201ec12afcb56fa631de
code:python
# 関数定義でもない一番浅いインデント箇所に書かれたこれらは【グローバル変数】
x = 1
y = 3
def increment():
global x
x += 1
increment() # この実行はエラーになる?ならない?
print(x)
→ global xの記述によって、グローバル変数xを操作可能になった
https://gyazo.com/ca04dbb5a594e057375346a71c15eb43