Python型ヒント¶
はじめに¶
Pythonは動的型付け言語なので、変数や関数の引数・戻り値などには型指定をせずに、実行時に値が持つ型と不整合があるとエラーとなります。実行するまでエラーに気づかないので開発効率の観点では静的型付け言語に劣ります。
そこで、Pythonにおいてコード上の引数、戻り値に型指定をすることで実行時に発見していたエラーをコーディング時や実行前の検査時に発見することを可能にします。これにより開発効率の向上を実現します。
関数¶
| 型ヒントなしの関数定義 | 型ヒントありの関数定義 |
|---|---|
|
|
デフォルト引数¶
引数のアノテーションの後にデフォルト値を記述します。def greet(message: str = "Hello") -> None:
型アノテーションあれこれ¶
- リスト、集合は、
list[str]やset[float]のように要素の型を角カッコ内に記述 - 辞書は、
dict[str, int]のようにキーと値の型を角カッコ内に記述 - タプルは、
tuple[int, str, float]のように要素の型を角カッコ内に順序で記述 - 複数の型が入り得る場合、
def address(): -> str | None:とパイプ記号で並べて記述
Python 3.10から、Optional、Union型を型ヒントで使わなくてもよくなった - 関数を受け取る引数は、
Callable[[int, str], float]のようにCallableに角カッコ内に引数と戻り値の型を記述、from typing import Callableが必要 - ジェネレータ関数の型は、
Iterator[int]とIteratorに角カッコで生成する型を記述 - 任意型あるいは型チェックをスルーしたい場合、Any型、
from typing import Anyが必要 - 特定の定数値を受け付ける Literal型(
operation: Literal["production", "development"])、from typing import Litelalが必要