8. データ型
***********

この章で解説されるモジュールは日付や時間、型が固定された配列、ヒープキ
ュー、同期キュー、集合のような種々の特殊なデータ型を提供します。

Python にはその他にもいくつかの組み込みデータ型があります。特に、
"dict" 、 "list" 、 "set" 、 "frozenset" 、そして "tuple" があります。
"str" クラスは Unicode データを扱うことができ、 "bytes" クラスはバイナ
リデータを扱うことができます。

この章では以下のモジュールが記述されています:

* 8.1. "datetime" --- 基本的な日付型および時間型

  * 8.1.1. 利用可能なデータ型

  * 8.1.2. "timedelta" オブジェクト

  * 8.1.3. "date" オブジェクト

  * 8.1.4. "datetime" オブジェクト

  * 8.1.5. "time" オブジェクト

  * 8.1.6. "tzinfo" オブジェクト

  * 8.1.7. "timezone" オブジェクト

  * 8.1.8. "strftime()" と "strptime()" の振る舞い

* 8.2. "calendar" --- 一般的なカレンダーに関する関数群

* 8.3. "collections" --- コンテナデータ型

  * 8.3.1. "ChainMap" オブジェクト

    * 8.3.1.1. "ChainMap" の例とレシピ

  * 8.3.2. "Counter" オブジェクト

  * 8.3.3. "deque" オブジェクト

    * 8.3.3.1. "deque" のレシピ

  * 8.3.4. "defaultdict" オブジェクト

    * 8.3.4.1. "defaultdict" の使用例

  * 8.3.5. "namedtuple()" 名前付きフィールドを持つタプルのファクトリ関
    数

  * 8.3.6. "OrderedDict" オブジェクト

    * 8.3.6.1. "OrderedDict" の例とレシピ

  * 8.3.7. "UserDict" オブジェクト

  * 8.3.8. "UserList" オブジェクト

  * 8.3.9. "UserString" オブジェクト

* 8.4. "collections.abc" --- コレクションの抽象基底クラス

  * 8.4.1. コレクション抽象基底クラス

* 8.5. "heapq" --- ヒープキューアルゴリズム

  * 8.5.1. 基本的な例

  * 8.5.2. 優先度キュー実装の注釈

  * 8.5.3. 理論

* 8.6. "bisect" --- 配列二分法アルゴリズム

  * 8.6.1. ソート済みリストの探索

  * 8.6.2. その他の使用例

* 8.7. "array" --- 効率のよい数値アレイ

* 8.8. "weakref" --- 弱参照

  * 8.8.1. 弱参照オブジェクト

  * 8.8.2. 使用例

  * 8.8.3. ファイナライザオブジェクト

  * 8.8.4. ファイナライザと "__del__()" メソッドとの比較

* 8.9. "types" --- 動的な型生成と組み込み型に対する名前

  * 8.9.1. 動的な型生成

  * 8.9.2. 標準的なインタプリタ型

  * 8.9.3. 追加のユーティリティクラスと関数

  * 8.9.4. コルーチンユーティリティ関数

* 8.10. "copy" --- 浅いコピーおよび深いコピー操作

* 8.11. "pprint" --- データ出力の整然化

  * 8.11.1. PrettyPrinter オブジェクト

  * 8.11.2. 使用例

* 8.12. "reprlib" --- もう一つの "repr()" の実装

  * 8.12.1. Reprオブジェクト

  * 8.12.2. Reprオブジェクトをサブクラス化する

* 8.13. "enum" --- 列挙型のサポート

  * 8.13.1. モジュールコンテンツ

  * 8.13.2. Enum の作成

  * 8.13.3. 列挙型メンバーおよびそれらの属性へのプログラム的アクセス

  * 8.13.4. 列挙型メンバーと値の重複

  * 8.13.5. 番号付けの値が同一であることの確認

  * 8.13.6. 値の自動設定を使う

  * 8.13.7. イテレーション

  * 8.13.8. 比較

  * 8.13.9. 列挙型で許されるメンバーと属性

  * 8.13.10. 列挙型のサブクラス化の制限事項

  * 8.13.11. Pickle 化

  * 8.13.12. 機能 API

  * 8.13.13. 派生列挙型

    * 8.13.13.1. IntEnum

    * 8.13.13.2. IntFlag

    * 8.13.13.3. Flag

    * 8.13.13.4. その他

  * 8.13.14. 興味深い例

    * 8.13.14.1. 値の省略

      * 8.13.14.1.1. "auto" を使う

      * 8.13.14.1.2. "object" を使う

      * 8.13.14.1.3. 解説文字列を使う

      * 8.13.14.1.4. 独自の "__new__()" を使う

    * 8.13.14.2. OrderedEnum

    * 8.13.14.3. DuplicateFreeEnum

    * 8.13.14.4. Planet

  * 8.13.15. Enum はどう違うのか?

    * 8.13.15.1. Enum クラス

    * 8.13.15.2. Enum メンバー (インスタンス)

    * 8.13.15.3. 細かい点

      * 8.13.15.3.1. "__dunder__" 名のサポート

      * 8.13.15.3.2. "_sunder_" 名のサポート

      * 8.13.15.3.3. "Enum" メンバー型

      * 8.13.15.3.4. "Enum" クラスとメンバーの真偽値

      * 8.13.15.3.5. メソッド付きの "Enum" クラス

      * 8.13.15.3.6. "Flag" のメンバーの組み合わせ
