Python 入門コース / 第4章 関数(第25〜32回) / レッスン 28

変数のスコープ

関数の中の変数は外から見えない

関数の中で作った変数はその関数の中だけで有効です(ローカル変数)。外から参照しようとすると NameError になります。逆に、関数の中から外の変数を読むことはできます。

editor.py

書き換えようとすると別物になる

関数の中で代入すると、Python は「同名の新しいローカル変数を作る」と解釈します。外の変数は変わりません。global 宣言をすれば書き換えられますが、どこで値が変わるか追えなくなるため実務では避けます。

editor.py

リストを渡したときだけ話が変わる

引数がリストや辞書の場合、中身の書き換えは呼び出し元にも影響します(同じものを指しているため)。意図しない変更を避けるには、コピーを渡すか、新しいリストを作って返すのが安全です。

editor.py

✅ 理解度チェック

関数の中で外側の変数に代入すると何が起きる?