3
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Python で型ヒントを明記する

Posted at

当記事の目的

Python3 での型ヒントの書き方を紹介する。

型ヒントを書く理由

Python では型を示さずとも変数、引数、戻り値の定義ができるので、型がいまいち分かりづらい。
そこで型ヒントを明記すると、それぞれの変数、引数、戻り値の型が一目見てわかるようになり、親切な実装になる。

基本的な書き方

# メソッドの引数と戻り値の型を示す
def get_item(id: int) -> str:
    """
    item を取得する

    :param id: ID
    :return 文字列
    """
    # 変数の型を示す
    item_name: str = "hogehoge"

各種型ヒントの書き方

個人的に使用頻度の高い型の型ヒントの使い方を、以下に示す。

int

数値型の場合。

# 使用例
number: int = 1

str

文字列型の場合。

# 使用例
name: str = "piyopiyo"

List

リスト型の場合。(ドキュメント

from typing import List
# 数値のリストである場合
id_list: List[int] = [1, 2, 3]

list もあるが、こちらは Python 3.9 以降非推奨となった模様。

Dict

辞書型の場合。(ドキュメント

from typing import Dict
# 文字列と文字列の辞書の場合
respose_dict: Dict[str, str] = {"name": "fugafuga"}

dict もあるが、こちらは Python 3.9 以降非推奨となった模様。

Union

複数型が入り得る場合。(ドキュメント

from typing import Dict, Union
# int または str が入り得る場合
Union[str, int]
# 使用例
param_dict: Dict[str, Union[str, int]] = {"id": 1, "name": "hogepiyo"}

Optional

None またはそれ以外の型が入り得る場合。(ドキュメント

from typing import Optional
# int または None が入り得る場合
Optional[int]
# 使用例
def get_japanese_str(name: str) -> Optional[str]:
    """
    名前に「日本人の」が含まれていれば「日本人です」との文字列を、そうでなければ None を返す

    :param person_name: 判定対象の人の名前
    :return 「日本人です」または None
    """
    if "日本人の" in name:
        return "日本人です"
    return None

参考

Python 型ヒントドキュメント

3
7
1

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
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?