Pythonにおける変数は、スコープ(有効範囲)によって「ローカル変数」と「グローバル変数」に分けられます。このセクションでは、両者について詳しく学び、サンプルコードを通じて理解を深めましょう。
ローカル変数は、関数内で定義され、その関数内でのみ有効な変数です。関数が終了すると、ローカル変数は消失します。
def greet(name):
greeting = f"Hello, {name}!" # greetingはローカル変数
return greeting
print(greet("Alice")) # Hello, Alice!
# print(greeting) # これはエラーになります。greetingは関数内でのみ有効です。
greet
関数内で定義されたgreeting
変数はローカル変数です。greeting
はgreet
関数内でのみアクセス可能で、関数の外では使用できません。グローバル変数は、スクリプト全体で有効な変数です。関数の外で定義され、どの関数からもアクセスが可能です。
message = "Hello, World!" # messageはグローバル変数
def print_message():
print(message) # グローバル変数にアクセス
print_message() # Hello, World!
message
変数はグローバル変数であり、関数print_message
内からもアクセスできます。関数内でグローバル変数を変更したい場合は、global
キーワードを使います。
counter = 0 # グローバル変数
def increment():
global counter # counterをグローバル変数として宣言
counter += 1
increment()
increment()
print(counter) # 2
global counter
を使用することで、関数内でcounter
をグローバル変数として操作できます。ローカル変数とグローバル変数が同じ名前で定義されている場合、関数内ではローカル変数が優先されます。
value = 10 # グローバル変数
def change_value():
value = 5 # ローカル変数
print("Inside function:", value)
change_value() # Inside function: 5
print("Outside function:", value) # Outside function: 10
change_value
関数内で定義されたvalue
はローカル変数です。そのため、関数内ではローカル変数が表示され、グローバル変数には影響を与えません。global
キーワードを使用する必要があります。これらの概念を理解することで、Pythonでより効果的に変数を管理し、コードの可読性を高めることができるようになります。