python字典的内置方法setdefault(key, val)的作用是当字典里有键key时,直接返回key对应的值,如果字典里没有键key时,则向字典里添加一个键值对。正常来说这个特性很方便,类似于字典的方法get,但setdefault有个缺点,即当val这个占位符对应的是一个函数时,无论字典中有无键key,这个函数都会执行,具体例子如下:
在Effective Python的第18条建议(学会利用__missing__构造依赖键的默认值)中就提到了这个问题,这里用实例验证之。
python字典的内置方法setdefault(key, val)的作用是当字典里有键key时,直接返回key对应的值,如果字典里没有键key时,则向字典里添加一个键值对。正常来说这个特性很方便,类似于字典的方法get,但setdefault有个缺点,即当val这个占位符对应的是一个函数时,无论字典中有无键key,这个函数都会执行,具体例子如下:
在Effective Python的第18条建议(学会利用__missing__构造依赖键的默认值)中就提到了这个问题,这里用实例验证之。