資料型別
********

本章節所描述的模組 (module) 提供了多樣的專門資料型別，例如日期與時間、
固定型別陣列 (fixed-type arrays)、堆積佇列 (heap queues)、雙端佇列
(double-ended queues) 與枚舉 (enumerations)。

Python 也有提供一些內建資料型別，特別是 "dict"、"list"、"set" 與
"frozenset" 和 "tuple"。"str" 類別是用來儲存 Unicode 字串，"bytes" 與
"bytearray" 類別則是用來儲存二進位制資料。

本章節包含下列模組的文件：

* "datetime" --- 日期與時間的基本型別

  * 感知型对象和简单型对象

  * 常數

  * 有效的类型

    * 通用的特征属性

    * 确定一个对象是感知型还是简单型

  * "timedelta" 物件

    * 用法範例："timedelta"

  * "date" 物件

    * 用法範例："date"

  * "datetime" 物件

    * 用法示例: "datetime"

  * "time" 物件

    * 用法示例: "time"

  * "tzinfo" 物件

  * "timezone" 物件

  * "strftime()" 與 "strptime()" 的行為

    * "strftime()" 和 "strptime()" Format Codes

    * 技术细节

* "zoneinfo" --- IANA 时区支持

  * 使用 "ZoneInfo"

  * 数据源

    * 配置数据源

      * 编译时配置

      * 环境配置

      * 运行时配置

  * "ZoneInfo" 类

    * 字符串表示

    * 封存序列化

  * 函式

  * 全局变量

  * 异常与警告

* "calendar" --- 日历相关函数

* "collections" --- 容器資料型態

  * "ChainMap" 物件

    * "ChainMap" 範例和用法

  * "Counter" 物件

  * "deque" 物件

    * "deque" 用法

  * "defaultdict" 物件

    * "defaultdict" 範例

  * "namedtuple()" 擁有具名欄位之 tuple 的工廠函式

  * "OrderedDict" 物件

    * "OrderedDict" 範例與用法

  * "UserDict" 物件

  * "UserList" 物件

  * "UserString" 物件

* "collections.abc" --- 容器的抽象基类

  * 容器抽象基类

  * 多项集抽象基类 -- 详细描述

  * 例子和配方

* "heapq" --- 堆積佇列 (heap queue) 演算法

  * 基礎範例

  * 優先佇列  (Priority Queue) 實作細節

  * 原理

* "bisect" --- 陣列二分演算法 (Array bisection algorithm)

  * 效能考量

  * 搜尋一個已排序的 list

  * 範例

* "array" --- 高效率的數值型陣列

* "weakref" --- 弱引用

  * 弱引用对象

  * 範例

  * 终结器对象

  * 比较终结器与 "__del__()" 方法

* "types" --- 动态类型创建和内置类型名称

  * 动态类型创建

  * 标准解释器类型

  * 附加工具类和函数

  * 协程工具函数

* "copy" --- 淺層 (shallow) 和深層 (deep) 複製操作

* "pprint" --- 数据美化输出

  * PrettyPrinter 物件

  * 範例

* "reprlib" --- 另一种 "repr()" 实现

  * Repr 物件

  * 子类化 Repr 对象

* "enum" --- 对枚举的支持

  * 模組內容

  * 创建 Enum

  * 枚举成员及其属性的编程访问

  * 重复的枚举成员和值

  * 确保枚举值唯一

  * 使用自动设定的值

  * 迭代

  * 比较运算

  * 合法的枚举成员和属性

  * 受限的 Enum 子类化

  * 打包（pickle）

  * 函数式 API

  * 派生的枚举

    * IntEnum

    * IntFlag

    * 标志位

    * 其他事项

  * 何时使用 "__new__()" 与 "__init__()"

  * 有趣的示例

    * 省略值

      * 使用 "auto"

      * 使用 "object"

      * 使用描述性字符串

      * 使用自定义的 "__new__()"

    * OrderedEnum

    * DuplicateFreeEnum

    * Planet

    * TimePeriod

  * 各种枚举有何区别？

    * 枚举类

    * 枚举成员（即实例）

    * 细节要点

      * 支持的 "__dunder__" 名称

      * 支持的 "_sunder_" 名称

      * _Private__names

      * "Enum" 成员类型

      * "Enum" 类和成员的布尔值

      * 带有方法的 "Enum" 类

      * 组合 "Flag" 的成员

* "graphlib" --- 操作类似图的结构的功能

  * 例外
