6
在创建defaultdict(调用不存在的密钥时返回的值)时,是否有方法更改default_factory?*在初始化后更改defaultdict *的默认返回值
例如,创建了一个defaultdict如
d = defaultdict(lambda:1)
时,d
将返回1,每当不存在的键如d['absent']
被调用。这个初始定义如何将此默认值更改为之后的另一个值(例如2)?
在创建defaultdict(调用不存在的密钥时返回的值)时,是否有方法更改default_factory?*在初始化后更改defaultdict *的默认返回值
例如,创建了一个defaultdict如
d = defaultdict(lambda:1)
时,d
将返回1,每当不存在的键如d['absent']
被调用。这个初始定义如何将此默认值更改为之后的另一个值(例如2)?
将新值分配给defaultdict的default_factory
属性。
该属性用于通过
__missing__()
方法; 如果存在 ,则从第一个参数初始化为构造函数,如果不存在,则初始化为None
。
演示:
>>> dic = defaultdict(lambda:1)
>>> dic[5]
1
>>> dic.default_factory = lambda:2
>>> dic[100]
2
真棒,谢谢! –