Pythonのスコープと記憶寿命

Pythonのスコープと記憶寿命
目次

スコープと記憶寿命

ロボ君

スコープは、変数が有効な範囲のことデス。

りある

記憶寿命は、変数がメモリ上に存在する期間のことだよね。

スコープ

  • グローバルスコープ
    • プログラム全体で有効なスコープです。
    • 変数をグローバルスコープで宣言すると、プログラム全体でその変数を使用できます。
  • ローカルスコープ
    • 関数の内部で有効なスコープです。
    • 関数内で宣言された変数は、その関数の内部でのみ使用できます。

記憶寿命

  • ローカル変数の記憶寿命
    • 関数が実行されている間のみ有効です。
    • 関数が終了すると、ローカル変数はメモリから削除されます。
  • グローバル変数の記憶寿命
    • プログラムが終了するまで有効です。
    • プログラムが終了すると、グローバル変数はメモリから削除されます。

スコープと記憶寿命の例

# グローバル変数
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 を出力しようとするとエラーになります。

スコープと記憶寿命の注意点

  • スコープの範囲を超えて変数を使用すると、エラーが発生します。
  • グローバル変数は、関数の内部で変更すると、意図しない結果になる可能性があります。
  • ローカル変数は、関数の外で使用することはできません。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次