2. 型システム
- データ型はそのデータを操作するとどのように振る舞うかを開発者に伝える
- 静的型付け: ビルド時変数に型情報を埋め込む
- 動的型付け: 値自体に型情報を埋め込む
3. 型アノテーション
- 利点
- いつ使うべきか
- 他のモジュールや利用者が呼び出す関数
- 型が複雑でわかりにくい箇所
- mypyがデータ型を指定するように指示する場所. 空のコレクションに代入するところ
4. 型制約
型たち
- Optional
- Union
- Literal
- Annotated
- 扱えるデータ型と値の条件を指定
- Annotated[int, ValueRange(3,5)]
- Annotated[str, MatchesRegex(”[0-9]{4}”]
- NewType
- 特定のコンテキスト内だけで扱える型をつくる
- ex) ReadyToServedHotDog(”ReadyToServedHotDog”,HotDog)
- HotDog < ReadyToServedHotDog
- return ReadyToServedHotDog(hot_dog)のように明示的に型を変換する
- ex) UserとLoggedInUser
- ログインしたユーザにだけ適応できるメソッドを作れる
- classの不変式でも実現できるが、より軽量
- 型エイリアスと似ているが、型エイリアスは新旧の方が完全に交換可能
- Final