第6章 创建容器和集合
我们可以通过扩展不同的抽象基类的方式来创建新的集合。抽象基类为我们提供了扩展内置容器的基本准则。这让我们可以修改现有的属性或者重新定义更加符合我们需求的新数据结构。
我们会介绍容器的抽象基类的基本知识。Python使用了很多抽象基类来组合内置类型,例如list、tuple、dict、set和frozenset。
我们会重温各种与创建容器相关或者为容器提供了不同功能的特殊方法。我们会将这些方法单独归类为核心容器方法,与一些用于sequence、map和set的特殊方法区分开。
我们会着重介绍如何通过扩展容器的方式往容器类中添加新的属性。我们还会介绍如何封装内置容器并将方法的行为从封装类委托给基础容器。
最后,我们会介绍如何创建全新的容器。这是很有挑战的一个部分,因为Python标准库中已经内置了许多非常有用而且功能强大的集合算法。为了避免涉及过深的计算机科学知识,我们会创建一个非常简陋的集合。开始在真实的应用中创建我们自己的容器之前,很有必要认真地学习Cormen、Leiserson、Rivest和Stein所著的Introduction to Algorithms。
在结束本章之前,我们会总结一些在扩展或者创建新的集合时需要考虑的设计要素。
