【Python】変数の型以外のメタ情報をアノテーションするtyping.Annotated
はじめに
今回はtyping.Annotated
を用いて,変数に型以外のメタ情報もアノテーションする方法について調べたので,こちらにメモを残しておきます.
こちらを使うことで,より可読性の高いコードが書けるようになります
typing.Annotated
とは
typing.Annotated
を用いることで,変数に型以外のメタ情報もアノテーションすることができます.
これらのメタ情報はmypyでは考慮されないもので,単に可読性を向上させることを目的としているようです.
以下の例を考えます.重さと体積から密度を計算する関数です.
def get_density(weight: float, volume: float) -> float: return weight / volume
こちらの関数は型アノテーションがされており,一見問題ないように見えますが,weight
やvolume
の単位がわかりません.
単位の情報を明示するため方法として,コメントに残すのもありですが,typing.Annotated
を使用することで,よりわかりやすくコードを書くことができます.
from typing import Annotated def get_density( weight: Annotated[float, "kg"], volume: Annotated[float, "cubic metre"] ) -> Anntated[float, "kg per cubic metre"]: return weight / volume