初心者のためのpython入門

自分がつまづいたところやつまづきやすいところを中心に書いていきます。また、役に立つライブラリの紹介などをしていきます。

typing: 型のヒント

前書き

今回は、typingモジュールについて紹介します。
これを利用することにより、型に関するアノテーション(注釈)をつけることができます。

使用例

まずは、基本的なアノテーションを見てみましょう。

def is_even_number(num: int) -> bool:  # 偶数か判定
    return num % 2 == 0

引数と返り値にアノテーションがつけられています。

  • num: int: 引数numint
  • -> 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] = {}

上記の例のように変数にもアノテーションをつけることができます。 様々なアノテーションの例については、公式ドキュメントを参考にしてください。

後書き

今回は、関数の引数や返り値、変数にアノテーションをつけれることを紹介しました。
次回は、アノテーションをより効果的に利用する方法を紹介します。