python typing

pythonのtyping

タグ typing


pythonのtyping

概要

  • python3の特定のバージョンから導入された型アノテーション
  • vscodeやpyrightなどのチェックツールで静的チェックができるようになる

Union型

  • python3.10から|でUnionを指定できる
  • Unionとはいずれかの型ということ
  • 例ではList[int]pd.Seriesを入力で期待する場合
from typing import List

def function(value: List[int] | pd.Series):
    pass

Optional型

  • よくあるデザインパターンの一種
  • 例外を用いないで失敗したらNoneを返すなどのパターン
from typing import Optional

def function(value: int) -> Optional[int]:
    if value == 0:
        return None
    return 10.0/value

Literal型

  • Literalを使うことで特定の値のみを受け付けることができる
  • 簡易的なenumのような使い方ができる
from typing import Literal

def process_color(color: Literal['red', 'green', 'blue']) -> str:
    if color == 'red':
        return 'You selected red.'
    elif color == 'green':
        return 'You selected green.'
    elif color == 'blue':
        return 'You selected blue.'
    else:
        # この部分にはLiteralで型指定されているため通常到達しません
        raise ValueError('Invalid color')

# 正しい値
print(process_color('red'))   # You selected red.

Dict型とその派生

  • 以下のものが存在する
    • typing.Dict
    • typing.DefaultDict
    • typing.OrderedDict

参考