2019年12月19日 很久没写博客了,开一个有关源代码解析的,希望有朝一日能够写出些东西
目录
OrderedDict源代码分析
实现思路
实际上想了解这个OrderedDict源代码实现的原因是leetcode-LRU缓存实现这道题里的题解使用到了这个模块
实现OrderedDict模块的思路与实现LRU缓存的思路相似,都是利用哈希表实现在O(1)时间内查找目标以及利用双向链表实现对元素输入顺序的记录。但不同的是OrderedDict的链表为双向循环列表,用来实现逆序输出。
源代码
class OrderedDict(dict):
def __init__(self, *args, **kwds):
if not args:
raise TypeError("descriptor '__init__' of 'OrderedDict' object "
"needs an argument")
self = args[0]
args = args[1:]
if len(args) > 1:
r