Pythonでは、関数内で定義された変数はローカル変数となります。これらの変数は、その関数内でのみ参照・変更が可能で、関数の外部からは直接参照したり操作したりすることができません。例えば、以下のコードを見てみましょう。
def say_hello():
greeting = "こんにちは、世界!" # ローカル変数
print(greeting)
say_hello() # "こんにちは、世界!"と出力
print(greeting) # エラーが発生
このコードでは、関数say_hello
内にローカル変数greeting
を定義しています。この変数は、say_hello
関数内からのみアクセス可能であり、関数の外部からは参照できません。
一方、グローバル変数は、Pythonプログラム全体、つまり全ての関数やクラスからアクセス可能な変数です。これらの変数は、通常、スクリプトの最上位レベルで定義されます。以下のコードを見てみましょう。
message = "こんにちは、世界!" # グローバル変数
def print_message():
print(message) # グローバル変数を利用
print_message() # "こんにちは、世界!"と出力
print(message) # "こんにちは、世界!"と出力
このコードでは、最初にmessage
というグローバル変数を定義し、その後でprint_message
という関数の中でこのグローバル変数を利用しています。さらに、関数の外からも同じ変数を参照することができます。
Pythonのglobal
キーワードは、グローバル変数を関数内で変更するために使用されます。通常、関数内で変数に値を代入すると、その変数はその関数のローカル変数となります。しかし、global
キーワードを使ってその変数を宣言すると、その変数はグローバル変数として扱われ、関数内でその値を変更することができます。以下のコードを見てみましょう。
x = 10 # グローバル変数
def update_x():
global x
x = 20
print(x) # ここでの出力は 10
update_x() # 関数を呼び出してグローバル変数xを更新
print(x) # ここでの出力は 20
このコードでは、update_x
という関数内でglobal
キーワードを使用してx
というグローバル変数を宣言し、その値を20に変更しています。その結果、関数の外からx
の値を出力すると、その値は20になっています。
以上がPythonにおけるローカル変数とグローバル変数の基本的な理解になります。これらの理解は、Pythonプログラミングにおいて非常に重要です。適切な変数のスコープを理解し、それを適切に使用することで、コードの可読性と保守性を向上させることができます。