目次
スコープと記憶寿命
ロボ君
スコープは、変数が有効な範囲のことデス。
記憶寿命は、変数がメモリ上に存在する期間のことだよね。
スコープ
- グローバルスコープ
- プログラム全体で有効なスコープです。
- 変数をグローバルスコープで宣言すると、プログラム全体でその変数を使用できます。
- ローカルスコープ
- 関数の内部で有効なスコープです。
- 関数内で宣言された変数は、その関数の内部でのみ使用できます。
記憶寿命
- ローカル変数の記憶寿命
- 関数が実行されている間のみ有効です。
- 関数が終了すると、ローカル変数はメモリから削除されます。
- グローバル変数の記憶寿命
- プログラムが終了するまで有効です。
- プログラムが終了すると、グローバル変数はメモリから削除されます。
スコープと記憶寿命の例
# グローバル変数
global_variable = "グローバル変数"
# ローカル変数
def function():
local_variable = "ローカル変数"
print(local_variable)
# ローカル変数ここまで
function()
print(global_variable)
# print(local_variable) ←ここで実行するとローカル変数の記憶寿命が終わっているのでエラーになる
# グローバル変数ここまで
↓実行結果
ローカル変数
グローバル変数
グローバル変数 global_variable
とローカル変数 local_variable
を定義。function()
関数は、ローカル変数 local_variable
を定義し、その値を出力します。function()
関数が終了すると、ローカル変数 local_variable
はメモリから削除されますが、グローバル変数 global_variable
はメモリに残ります。
そのため、function()
関数の終了後に、グローバル変数 global_variable
の値を出力することができますが、ローカル変数 local_variable
を出力しようとするとエラーになります。
スコープと記憶寿命の注意点
- スコープの範囲を超えて変数を使用すると、エラーが発生します。
- グローバル変数は、関数の内部で変更すると、意図しない結果になる可能性があります。
- ローカル変数は、関数の外で使用することはできません。