@property の area を作り、面積を小数第2位まで表示しよう。@property を付けると、() を書かずに「属性のように」呼び出せます。中では計算ができます。class Item:
def __init__(self, price):
self.price = price
@property
def with_tax(self):
return int(self.price * 1.1)
item = Item(1000)
print(item.with_tax) → 1100item.with_tax() ではなく item.with_tax であることに注目。@property はメソッドの真上の行に書きます。Circle クラスに area というメソッドを追加し、@property を付けるself だけreturn するself.r、円周率は math.pi(import math は書いてあるよ)full_name、半径から area、税抜から税込価格など。使う側は普通の属性と同じ感覚でアクセスでき、内部の計算を隠せます。c.area(() は付けない)self.r ** 2 が半径の2乗、math.pi が円周率78.54
全問正解でクエストクリア!
問題 1: Rectangle クラスに width=4, height=6 の @property area を作り、面積を表示しよう!
問題 2: Person クラスに first と last から @property full_name を作り「山田 太郎」と表示しよう!
問題 3: Temperature クラスに celsius を設定し @property fahrenheit で「77.0」と表示しよう!(25℃)