Kodrill

Python 3 エンジニア認定実践試験 / Python のクラスと型ヒント ・ 無料問題 4/5

Python のクラスと型ヒント 問題4[クラスの属性とメソッド]

次のコードを実行したときの結果を選んでください。

Python
class Temperature:    def __init__(self, celsius):        self._celsius = celsius​    @property    def celsius(self):        return self._celsius​    @property    def fahrenheit(self):        return self._celsius * 9 / 5 + 32​    @celsius.setter    def celsius(self, value):        if value < -273.15:            raise ValueError("too low")        self._celsius = value​t = Temperature(10)t.celsius = 100print(t.fahrenheit)t.fahrenheit = 0

選択肢

  • A.50.0 と出力したあと、AttributeError が発生する
  • B.212.0 と出力して正常に終了する
  • C.212.0 と出力したあと、AttributeError が発生する正解
  • D.最初の代入で ValueError が発生する

解説実行して確認済み

@property を付けたメソッドは、属性のように t.fahrenheit で読み出せます。@celsius.setter で setter を定義した celsius は代入もでき、100 に変わった後の華氏は 212.0 です。一方、fahrenheit には setter がないので、代入すると AttributeError が発生します。

この問題の答えは、試験の対象バージョンでコードを実際に実行して確かめています。確かめ方は運営者情報に書いています。

「Python のクラスと型ヒント」の要点を解説記事で読む

「Python のクラスと型ヒント」の無料問題

ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。