Python 模擬試験

Python実践 模擬試験 第6回 問10・3章 Pythonの言語仕様(名前空間とスコープ)

locals と globals

次のコードを実行したときの出力として、正しいものを1つ選べ。

x = 1
def f():
    y = 2
    return sorted(locals())
print(f(), "x" in globals())
  1. A

    ['y'] True

  2. B

    ['x', 'y'] True

  3. C

    ['y'] False

  4. D

    [] True

正解と解説を見る

正解:A

locals() は現在のローカル名前空間、globals() はグローバル名前空間を辞書で返す。名前解決は、ローカル → 外側の関数 → グローバル → 組み込み(LEGB)の順。

順実行する行実行後の変数
1`x = 1`x = 1
2`def f():`—
3`print(f(), "x" in globals())`—
4└ `y = 2`y = 2
5└ `return sorted(locals())`—
結果実際の出力['y'] True

学習のポイント:dir() は、現在の名前空間の名前のリスト。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。