数据类型
********

本章所描述的模块提供了许多专门的数据类型，如日期和时间、固定类型的数组
、堆队列、双端队列、以及枚举。

Python也提供一些内置数据类型，特别是，"dict"、 "list"、"set"、
"frozenset"、以及 "tuple"。"str" 这个类是用来存储Unicode字符串的，而
"bytes" 和 "bytearray" 这两个类是用来存储二进制数据的。

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

* "datetime" --- 基本的日期和时间类型

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

  * 常量

  * 有效的类型

    * 通用的特征属性

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

  * "timedelta" 类对象

    * class:*timedelta* 用法示例

  * "date" 对象

    * class:*date* 用法示例

  * "datetime" 对象

    * 用法示例: "datetime"

  * "time" 对象

    * 用法示例: "time"

  * "tzinfo" 对象

  * "timezone" 对象

  * "strftime()" 和 "strptime()" 的行为

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

    * 技术细节

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

  * 使用 "ZoneInfo"

  * 数据源

    * 配置数据源

      * 编译时配置

      * 环境配置

      * 运行时配置

  * "ZoneInfo" 类

    * 字符串表示

    * 封存序列化

  * 函数

  * 全局变量

  * 异常与警告

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

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

  * "ChainMap" objects

    * "ChainMap" 例子和方法

  * "Counter" 物件

  * "deque" 对象

    * "deque" 用法

  * "defaultdict" 对象

    * "defaultdict" 例子

  * "namedtuple()" 命名元组的工厂函数

  * "OrderedDict" 对象

    * "OrderedDict" 例子和用法

  * "UserDict" 对象

  * "UserList" 对象

  * "UserString" 对象

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

  * 容器抽象基类

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

  * 基礎範例

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

  * 原理

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

  * 搜索有序列表

  * 其他示例

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

* "weakref" --- 弱引用

  * 弱引用对象

  * 示例

  * 终结器对象

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

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

  * 动态类型创建

  * 标准解释器类型

  * 附加工具类和函数

  * 协程工具函数

* "copy" --- 浅层 (shallow) 和深层 (deep) 复制操作

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

  * PrettyPrinter 对象

  * 示例

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

  * Repr 对象

  * 子类化 Repr 对象

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

  * 模块内容

  * 创建一个 Enum

  * 对枚举成员及其属性的程序化访问

  * 复制枚举成员和值

  * 确保唯一的枚举值

  * 使用自动设定的值

  * 迭代

  * 比较

  * 允许的枚举成员和属性

  * 受限的 Enum 子类化

  * 封存

  * 功能性 API

  * 派生的枚举

    * IntEnum

    * IntFlag

    * Flag

    * 其他事项

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

  * 有趣的示例

    * 省略值

      * 使用 "auto"

      * 使用 "object"

      * 使用描述性字符串

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

    * OrderedEnum

    * DuplicateFreeEnum

    * Planet

    * TimePeriod

  * 各种枚举有何区别？

    * 枚举类

    * 枚举成员（即实例）

    * 细节要点

      * 支持的 "__dunder__" 名称

      * 支持的 "_sunder_" 名称

      * "Enum" 成员类型

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

      * 带有方法的 "Enum" 类

      * 组合 "Flag" 的成员

* "graphlib" --- Functionality to operate with graph-like structures

  * Exceptions
