5章コレクション型

Pythonでは、コレクション型と格闘しない限り大したことはできない。コレクション型は、ユーザのリストやレストランと住所の対応関係といったデータの集まりを格納する。他のデータ型(たとえば、intfloatboolなど)が単一の値を対象とするのに対し、コレクション型は任意の数の値を格納できる。Pythonには、辞書、リスト、集合といったコレクション型がある。文字列もコレクションの一種であり、文字のシーケンスを格納する。しかしながら、初見のコードを読む際はどのコレクションが使われているのか判別が難しくなることがある。コレクション型が異なれば、動作も異なる。

「1章 ロバストPython入門」では、コレクション型の違いについて簡単に触れた。そこで取り上げたのは、ミュータブルかどうか、イテラブルかどうか、インデックス参照の有無や方法である。しかし、適切なコレクション型の選択は第一歩に過ぎない。コレクション型が暗黙的に持つ意味を理解し、コードを利用する開発者がそれを推論できなければならない。標準のコレクション型では不十分で独自のコレクション型を作る状況も認識する必要がある。最初は未来のメンテナに自分がどのコレクション型を選択したかを伝える方法からだ。おなじみの型アノテーションを使うのだ。

5.1 コレクションの型アノテーション

非コレクション型の型アノテーションについてはすでに説明したが、コレクション型の型アノテーションはまだ説明していない。幸い、すでに学んだ型アノテーションと大差はない。

具体例として、レシピ本アプリについて考える。手持ちのレシピ本をデジタルな形でまとめ、料理名、材料、著者から検索したい。著者が何冊のレシピ本を書いているかは、レシピ本のコレクションで当然知りたいことの1つだ。 ...

Get ロバストPython ―クリーンで保守しやすいコードを書く now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.