メモ置き場

組み込みコレクション型のtype hints

import collections.abc
import typing

# コレクション型のtype hintsは`[]`でジェネリクス部分の型を指定する
def func_dict1() -> dict[str,str]:
    return {'key': 'value'}

def func_list1() -> list[str]:
    return ["abc"]

def func_tuple1() -> tuple[str,str,str]:
    return ("a","b","c")

# 可能な場合はcollections.abc.Sequenceなどの抽象コレクション型を使う方が望ましい。
def func_dict2() -> collections.abc.Mapping[str,str]:
    return {'key': 'value'}

def func_list2() -> collections.abc.MutableSequence[str]:
    return ["abc"]

# Python3.9より前の場合、組み込みのコレクション型のtype hintsはtyping.Dict等の専用型を利用する
def func_dict3() -> typing.Dict[str,str]:
    return {'key': 'value'}

def func_list3() -> typing.List[str]:
    return ["abc"]

def func_tuple3() -> typing.Tuple[str,str,str]:
    return ("a","b","c")

# Union
def func_union1() -> typing.Union[str,int]:
    return "str"

# def func_union2() -> str | int: # 3.10以降は|で記載可能
#     return "str"

参考