typing: 型のヒント
前書き
今回は、typingモジュールについて紹介します。
これを利用することにより、型に関するアノテーション(注釈)をつけることができます。
使用例
まずは、基本的なアノテーションを見てみましょう。
def is_even_number(num: int) -> bool: # 偶数か判定 return num % 2 == 0
引数と返り値にアノテーションがつけられています。
num: int
: 引数num
がint
型-> str
: 関数is_even_number
の返り値がbool
型
次に、少し応用的なアノテーションを見てみましょう。
from typing import List, Callable, NoReturn def is_even_number(num: int) -> bool: # 偶数か判定 return num % 2 == 0 def filter_print(numbers: List[int], filter: Callable[[int], bool]) -> NoReturn: for number in numbers: if filter(number): print(number) numbers = [i for i in range(10)] filter_print(numbers, is_even_number)
typingモジュールからアノテーションに必要なクラスを読み込んでいます。
numbers: List[int]
:int
型を要素とするlist
型の引数filter: Callable[[int], bool]
:int
型を引数にとりbool
型を返す関数が引数-> NoReturn
: 関数filter_print
は返り値がない
アノテーションをつけることにより、関数の引数と返り値の型が一瞬で理解できるようになります。
from typing import Dict counter : int = 0 numbers : Dict[str, int] = {}
上記の例のように変数にもアノテーションをつけることができます。 様々なアノテーションの例については、公式ドキュメントを参考にしてください。
後書き
今回は、関数の引数や返り値、変数にアノテーションをつけれることを紹介しました。
次回は、アノテーションをより効果的に利用する方法を紹介します。