くらげになりたい。

くらげのようにふわふわ生きたい日曜プログラマなブログ。趣味の備忘録です。

Python3.7 x Data Classes(データクラス)

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
  • 個人的にいいなと思ったとこは、
    1. 変数を定義するだけで、「データを保持するためだけのクラス」を作れる
    2. もちろん、メソッドも追加できる (自動生成しているだけなのでclassと同じ)
    3. frozen=Trueを使うと、不変性(Immutable)のオブジェクト(の真似事)が作れる

kotlinにもData Classesがあるけど、
いろんな言語がどんどんコードを書かなくてよくなっていくのは、とてもよい。。

Type Hintingもだけど、Python3.7の新機能は(自分にとって)良いものがおおい印象だなぁ

以上!!

参考にしたサイト様