名前解決 プログラム実行時に何かの名前(変数名や関数名など)を発見すると、Pythonはそれを解決するために、3つ(またはそれ以上)のスコープを「ローカルスコープ→グローバルスコープ→ビルトインスコープ」の順にたどっていく。つまり、関数の実行時に名前が見つかると、まずは関数のローカルスコープからその名前を検索する。ローカルスコープにその名前があれば、それ(ローカル変数やパラメーターなど)の値を利用する。見つからなければ、グローバルスコープ→ビルトインスコープという順番で、その名前を検索していき、見つかったところでその値を利用する。最終的に名前が見つからなければ、先ほどの画像にあった「NameError」を発生させる。 以下では、名前を解決する順序についてコード例と共に見ていこう。 ローカルスコープのみ ここでmyfunc関数についてもう一度見てみよう。 def myfunc(): a =
![[Python入門]関数のローカル変数とスコープ](https://cdn-ak-scissors.b.st-hatena.com/image/square/d010baa9d1a9b31560c9c02dc5b9680917758fb1/height=288;version=1;width=512/https%3A%2F%2Fimage.itmedia.co.jp%2Fait%2Farticles%2F1905%2F24%2Fcover_news019.png)