はじめに
型アノテーションに関しての備忘録。
🦁結論🦁
引数と戻り値の型を指定することで、関数の動作がより明確になる。他の言語では絶対に必要の言語も多々ある。
押さえておくべき点
- 関数の引数の型、returnの型をメモしておけるイメージ。
- 型が違くてもエラーにはならない。
- 複数の型も指定できる型がある
- 辞書、リスト、タプルなどの型もある。
- mypyを使うことで型のチェックができる
注意点
- 型アノテーションは変換などをするわけではないのでエラーはでない。
- 過度に複雑な型アノテーションは可読性を下げる可能性があるため、適切なバランスが重要。
一覧
** 1. int - 整数型**
「年齢を表す数字」のように、カウントできるものや数えるものに使う
def get_age(age: int) -> int:
return 30
** 2. float - 浮動小数点型**
「お金の額」や「重さ」のように、小数点を含む数字
def get_weight(weight: float) -> float:
return 65.5
** 3. str - 文字列型**
文字列が入るもの全て。pathなども。
def get_name(name: str) -> str:
return "Taro"
** 4. bool - 真偽値型**
TrueかFalseのどちらかの値を持つもの
def is_adult(age: int) -> bool:
return age >= 18
** 5. List[T] - リスト型**
並んでるものなどの集まり。
Tはリストの中に入るものの型。
def get_favorite_foods() -> list[str]:
return ["Apple", "Banana", "Orange"]
** 6. Dict[K, V] - 辞書型**
キーと値のペアで情報を持った型。
jsonファイルも辞書型。
def get_ages() -> dict[str, int]:
return {"Alice": 30, "Bob": 25}
** 7. Set[T] - セット型**
重複を許さない一意のものの集まり
def get_pets() -> set[str]:
return {"dog", "cat"}
** 8. Tuple[T, ...] - タプル型**
複数の異なる型の値を一つにまとめて扱う。
def get_address() -> tuple[str, int]:
return ("Tokyo", 100-1)
** 9. Optional[T] - オプショナル型**
Noneか、またはT型の値を持つ
from typing import Optional
def get_nickname() -> Optional[str]:
return None # ニックネームがない場合
まとめ✍️
型アノテーションを知って引数が格段に見やすくなる。すぐに取り入れていく。