3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Python】型アノテーションを知ってますか?

Last updated at Posted at 2024-04-09

はじめに

型アノテーションに関しての備忘録。

🦁結論🦁

引数と戻り値の型を指定することで、関数の動作がより明確になる。他の言語では絶対に必要の言語も多々ある。

押さえておくべき点

  • 関数の引数の型、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  # ニックネームがない場合

まとめ✍️

型アノテーションを知って引数が格段に見やすくなる。すぐに取り入れていく。

3
1
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?