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"
この記事が気に入ったらサポートをしてみませんか?