Liquidsのロゴ Liquids

辞書の型アノテーション【Python】

Python

辞書の型アノテーションにはいくつか方法があるので、このwikiではTypedDictによる方法とdictによる方法を紹介します。

TypedDictを用いると、辞書が持つキーとその型まで詳細に型アノテーションを行うことが可能です。

TypedDictはPython3.8( PEP589 )で導入されました。

TypedDictclassに継承させる形で使用します。

例えば、titleキー(str型)とpriceキー(int型)を持つ辞書をアノテーションしたければ、以下のように使用します。

from typing import TypedDict

class Book(TypedDict):
    title: str
    price: int

book: Book = {
    'title': 'Master Type Annotations',
    'price': 1000
}

また、辞書で必須のキー・必須でないキーというのを設定したいこともあります。

それらはtyping.Requiredtyping.NotRequiredを利用することで設定可能です。

これらの方法やその他のTypedDictの詳細はこちらのwikiをご覧ください。

dictによるアノテーションでは、キーに使われる型、値に使われる型をアノテーションできる程度です。

辞書がどのような名前のキーを持つか、あるキーに対応する値の型は何かということを個別にアノテーションすることはできません。

辞書がどのようなキーを持つかがはっきりとわからない場合に使用できます。

book1: dict[str, str] = {
    'title': 'Master Type Annotations',
    'author': 'john'
}

book2: dict[str, str|int] = {
    'title': 'Master Type Annotations',
    'price': 1000
}
Liquidsのロゴ Liquids

Liquidsは誰でも投稿・編集ができる技術Wikiコミュニティ📝です。

あなたもLiquidsで技術Wikiを
書いてみませんか?