Python 3 エンジニア認定実践試験 / Python のクラスと型ヒント ・ 無料問題 4/5
Python のクラスと型ヒント 問題4[クラスの属性とメソッド]
次のコードを実行したときの結果を選んでください。
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 = valuet = 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 3 エンジニア認定実践試験 の他の分野の無料問題
ここで公開しているのは無料範囲の問題です。無料登録すると、解答の記録・ダッシュボードでの復習ができ、 プレミアムならこの問題セットの全問題と本番形式の模擬試験も解けます。