君山 (@JunShanPhe) 在 【Python】 为什么你给Dict设置的default value不起作用? 中发帖
python标准库中的dict类是运用最广泛的基础类之一,dict的实现相对较为简单,但是简单之中仍然蕴藏细节,尤其是dict对于默认值的处理方式,现在还存在一些可能会让人困惑的特性。
一、迷思发现
偶然地,我写了以下这样一段代码:
from collections import defaultdict
# 声明一个具有默认值的字典,默认值为空列表
statements = defaultdict(list)
# 获取字典中”key_str“对应的列表值,并在其尾部增加元素
statements.get("key_str").append("statement_str")
这段代码乍看没有问题,而实际上运行它会抛出以下异常:
AttributeError: 'NoneType' object has no attribute 'append'
而将以上代码中的最后一行改成以下...