Python3.7の新機能で、Data Classesが追加されたよう。素敵すぎる。。
@dataclasses
デコレータをつけると、initやstrを自動生成してくれる仕組みらしい。
import dataclasses @dataclasses.dataclass class InventoryItem: '''Class for keeping track of an item in inventory.''' name: str unit_price: float quantity_on_hand: int = 0 def total_cost(self) -> float: return self.unit_price * self.quantity_on_hand
- 個人的にいいなと思ったとこは、
- 変数を定義するだけで、「データを保持するためだけのクラス」を作れる
- もちろん、メソッドも追加できる (自動生成しているだけなのでclassと同じ)
frozen=True
を使うと、不変性(Immutable)のオブジェクト(の真似事)が作れる
kotlinにもData Classesがあるけど、
いろんな言語がどんどんコードを書かなくてよくなっていくのは、とてもよい。。
Type Hintingもだけど、Python3.7の新機能は(自分にとって)良いものがおおい印象だなぁ
以上!!