Python 模擬試験

Python実践 模擬試験 第2回 問11・4章 Pythonのクラス(プロパティ)

読み取り専用のプロパティ

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

class T:
    def __init__(self):
        self._c = 0
    @property
    def c(self):
        return self._c
t = T()
try:
    t.c = 5
except AttributeError:
    print("ro")
  1. A

    何も出力されない。

  2. B

    5

  3. C

    0

  4. D

    ro

正解と解説を見る

正解:D

@property は、メソッドを属性のように読み取れるようにする。書き込みを許すには @c.setter を定義する。

順実行する行実行後の変数
1`class T:`—
2└ `def __init__(self):`—
3└ `@property`—
4└ `def c(self):`—
5└ `@property`—
6└ `def c(self):`—
7`t = T()`t = T(vars={'_c': 0})
8└ `self._c = 0`self = T(vars={'_c': 0})
9`try:`—
10`t.c = 5`t = T(vars={'_c': 0})
11`except AttributeError:`—
12`print("ro")`—
分岐`except AttributeError:`実行される
結果実際の出力ro

学習のポイント:検証や計算を伴う属性に使う。

この問題を演習で解く →

問題一覧へ

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