問題

Pythonで、関数内で定義された変数がどのスコープに属するか選択肢から選びなさい。

選択肢

(a) ビルトインスコープ

(b) グローバルスコープ

(c) ローカルスコープ

(d) 3つのどれでもない

  • a
  • b
  • c
  • d

Python3 関数内で定義された変数のスコープ

答え

(c)

解説

Python3において、関数内で何か変数を定義するときには、その変数のスコープはローカルスコープとなります。したがって、その関数内でのみアクセス可能です。関数外や別の関数からその変数にアクセスすることはできません。

Python3にはグローバルスコープ、ローカルスコープ、ビルトインスコープが存在します。他にもエンクロージングスコープ等もありますが、基本的には上記の3つを押さえておけば問題ありません。

それぞれの説明は以下のようになります。

ビルトインスコープ(buit-in scope):
→ 複数のファイルにまたがってアクセスすることができるスコープです。int, str, len, rangeなどの組み込み関数等がこれに属します。ビルトインスコープの変数をユーザーが新しく追加することは基本的にはできませんが、builtinsモジュールを使うことで追加できます。

グローバルスコープ(global scope):
→ ファイル(モジュール)内でアクセスすることができるスコープです。

ローカルスコープ(local scope):
→ 関数内でアクセスすることができるスコープです。

このことからローカルスコープが正解です。スコープの理解が曖昧なままプログラムを書いていると思わぬところでエラーが発生することもあるため、細かい部分ですが押さえておきましょう。

テスト一覧

スキルテストが提供しているテストの一覧です。ぜひ学習や実力チェックに役立ててください。