8. 数据类型
***********

The modules described in this chapter provide a variety of specialized
data types such as dates and times, fixed-type arrays, heap queues,
synchronized queues, and sets.

Python also provides some built-in data types, in particular, "dict",
"list", "set" and "frozenset", and "tuple".  The "str" class is used
to hold Unicode strings, and the "bytes" class is used to hold binary
data.

本章包含以下模块的文档：

* 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" --- 浅层 (shallow) 和深层 (deep) 复制操作

* 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. Restricted subclassing of enumerations

  * 8.13.11. 封存

  * 8.13.12. 可用 API

  * 8.13.13. 派生的枚举

    * 8.13.13.1. IntEnum

    * 8.13.13.2. IntFlag

    * 8.13.13.3. 标志

    * 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. 各种枚举有何区别？

    * 8.13.15.1. 枚举类

    * 8.13.15.2. 枚举成员（即实例）

    * 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" 的成员
