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

変数のスコープは、その変数が参照可能な範囲を定義します。Pythonでは、変数のスコープは主にその変数が定義された場所によって決まります。ここでは、ローカル変数とグローバル変数という2つの主要な変数スコープに焦点を当てます。

ローカル変数とグローバル変数の定義

ローカル変数は、関数内で定義される変数で、その関数内でのみアクセス可能です。関数が終了すると、ローカル変数はメモリから解放され、その値は失われます。

def my_function():
    local_variable = "I'm local!"

一方、グローバル変数は関数の外部で定義され、プログラム全体からアクセス可能です。ただし、グローバル変数を使いすぎると、プログラムが読みにくくなる可能性があります。

global_variable = "I'm global!"

def my_function():
    print(global_variable)

スコープの理解と例

スコープの理解は、プログラミングにおいて重要です。変数がどの範囲でアクセス可能かを理解することで、バグを防いだり、コードの読みやすさを向上させることができます。

例えば、以下のコードを考えてみましょう。

def my_function():
    local_variable = "I'm local!"

my_function()
print(local_variable)  # NameError が発生します。

このコードはエラーを発生させます。local_variablemy_function内で定義されており、関数の外部からはアクセスできないからです。

一方、以下のコードは問題なく動作します。

global_variable = "I'm global!"

def my_function():
    print(global_variable)  # 「I'm global!」と表示されます。

my_function()

ここでは、global_variableは関数の外部で定義されているため、関数の内部からでもアクセスできます。

変数のスコープを理解することは、エラーを防ぎ、コードを効率的にするために重要です。