有没有办法在创建后更改 defaultdict 的 default_factory (调用不存在的键时返回的值)?
例如,当一个默认字典如
d = defaultdict(lambda:1)
被创建时,d
只要调用不存在的键(如d['absent']
被调用)就会返回 1。在这个初始定义之后,如何将这个默认值更改为另一个值(例如,2) ?
有没有办法在创建后更改 defaultdict 的 default_factory (调用不存在的键时返回的值)?
例如,当一个默认字典如
d = defaultdict(lambda:1)
被创建时,d
只要调用不存在的键(如d['absent']
被调用)就会返回 1。在这个初始定义之后,如何将这个默认值更改为另一个值(例如,2) ?
将新值分配给default_factory
defaultdict 的属性。
默认工厂:
该属性由
__missing__()
方法使用;如果存在,则从构造函数的第一个参数初始化None
,如果不存在,则从构造函数初始化。
演示:
>>> dic = defaultdict(lambda:1)
>>> dic[5]
1
>>> dic.default_factory = lambda:2
>>> dic[100]
2