Pythonのスコープについて理解することは、コードの読解力を向上させるために重要です。特に、for
文のスコープは初学者にとって混乱の元となることがあります。
for文とスコープ
Pythonでは、for
文は新しいスコープを作成しません。これは、for
文の中で定義した変数が、for
文の外でも引き続き利用できることを意味します。この特性は、他の言語(例えばC++)のfor
文とは異なります。
for i in range(3):
s = "value inside loop"
print(i)
print(s)
上記のコードは、for
文の外でi
とs
を出力します。出力結果は以下の通りです。
2
value inside loop
注意点
しかし、この特性は注意が必要です。for
文の中で定義した変数が、for
文の外でも利用できるため、for
文の外で同じ名前の変数を使用すると、予期しない結果を生む可能性があります。
また、リスト内包表記では新しいスコープが作成され、そのスコープ内で定義した変数は外部からアクセスできないことにも注意が必要です。
[i for i in range(3)]
print(i)
上記のコードはエラーを発生させます。
NameError: name 'i' is not defined
このように、Pythonのfor
文とスコープについて理解することは、エラーを避け、効率的なコードを書くために重要です。.