PyDictObject
本文参考的是 3.8.0a0 版本的代码,详见 cpython 源码分析 基本篇
以后都在 github 更新,请参考 图解python dict
dict 顾名思义是字典,通常来讲一个字典对象都是通过 HashTable 实现,HashTable 里面有一排桶,根据哈希算法不同的 key 映射到不同的或者相同的桶的位置,然后把 key/value 对存储到对应的桶里,因为哈希算法的时间复杂度是 O(1),所以dict的平均查询/增删减改的时间复杂度也会是 O(1)
下面我们来看下 Python 的 PyDictObject
PyDictObject 的信息主要存储在以下的四个位置:
Objects/dictobject.c
Objects/dict-common.h
Include/dictobject.h
cpython/dictobject.h
并且由上图可知,PyDictObje