Python 模擬試験

Python実践 模擬試験 第4回 問11・4章 Pythonのクラス(クラスの定義)

インスタンスの属性辞書

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

class A:
    def __init__(self):
        self.x = 1
a = A()
a.y = 2
print(vars(a))
  1. A

    {'x': 1}

  2. B

    {}

  3. C

    {'x': 1, 'y': 2}

  4. D

    ['x', 'y']

正解と解説を見る

正解:C

vars(obj)(obj.__dict__)は、インスタンスの属性の辞書。__slots__ を使うと、属性の辞書を持たないクラスにできる。

順実行する行実行後の変数
1`class A:`—
2└ `def __init__(self):`—
3`a = A()`a = A(vars={'x': 1})
4└ `self.x = 1`self = A(vars={'x': 1})
5`a.y = 2`a = A(vars={'x': 1, 'y': 2})
6`print(vars(a))`a = A(vars={'x': 1, 'y': 2})
結果実際の出力{'x': 1, 'y': 2}

学習のポイント:属性は、あとから動的に追加できる。

この問題を演習で解く →

問題一覧へ

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