分类 Python 下的文章

如何扩展 Django 的用户模型


起步

Django 内置的用户模型提供了包括身份认证等非常棒的功能,在大多数情况下开箱即用,节省了大量的开发和测试的工作。

通常我们需要存储更多用户相关的数据,内置的模型已无法满足。我们需要对它进行扩展。


Python 模块源码分析:heapq 堆


起步

heapq 模块实现了适用于Python列表的最小堆排序算法。

20190107115023.jpg

堆是一个树状的数据结构,其中的子节点都与父母排序顺序关系。因为堆排序中的树是满二叉树,因此可以用列表来表示树的结构,使得元素 N 的子元素位于 2N + 12N + 2 的位置(对于从零开始的索引)。

本文内容将分为三个部分,第一个部分简单介绍 heapq 模块的使用;第二部分回顾堆排序算法;第三部分分析heapq中的实现。