Pythonの型ヒント:基本的なもの

Pythonの型ヒントの書き方について基本的なものをまとめます。

・変数
変数の後に型を記載します。

number: int = 1
flag: bool = True

・組み込み型
typingモジュールからimportして使用します。

from typing import List, Set, Dict, Tuple, Optional, Union

x: List[int] = [1, 2]

x: Set[int] = {1, 2}

x: Dict[str, int] = {"key": 1}

x: Tuple[int, str] = (1, "value")
# すべての値が同じ型の場合
x: Tuple[int, ...] = (1, 2, 3)

# 指定の型に加えてNoneも許容する場合
x: Optional[str] = some_function()

if x is not None:
    print(x.upper())

# 2つのいずれかの型を許容する場合
x: Union[int, str] = some_function()

# xがintかstrなので"1"のような数値の文字列の場合にintでキャスト
if not isinstance(x, int):
    x = int(x)

・関数
組み込み型と同じくtypingモジュールからimportして使用します。

from typing import Callable, Iterator

# 基本的な関数の引数、返り値への型ヒント
def add(num1: int, num2: int) -> int:
    return num1 + num2
    
def f(num1: int, num2: float) -> float:
    return num1 + num2

# 関数型の場合
x: Callable[[int, float], float] = f

# ジェネレーターの場合
def g(n: int) -> Iterator:
    i = 0
    while i < n:
        yield i
        i += 1

・クラス
自作したクラスへも型ヒントを使用できる。

class MyClass:
    field: int = 10
    
    def my_method(self, n: int) -> int:
        return self.field + n

x: MyClass = MyClass() 

・任意のどんな型も許容する

from typing import Any

# 任意のどんな型も許容する場合
x: Any = 1
x = "a"

この記事が気に入ったらサポートをしてみませんか?