1
如果我在字典上设置了默认值,是否可以在覆盖后返回默认值?可以通过setdefault获取默认值
像这样:
dd = {}
dd.setdefault('beverage':'A nice cup of tea')
...
dd['beverage'] = 'Yellow urine'
...
if dd['beverage'] not in list_of_valid_beverages:
# If the beverage has been contaminated revert to default.
# Something like any of the following?
dd['beverage'] = dd.getdefault('beverage')
dd['beverage'].clear()
del dd['beverage']
...
print dd['beverage']
我的猜测是,这是不可能用普通字典。问鼎声明
DD [ '饮料'] = '小便黄'
执行茶是永远失去了。但这将是一个很好的功能:-)
任何人有更深入的了解?
值得注意的是,你可以继承'defaultdict'并覆盖'__missing__'函数,这样你就可以得到一个新的类,该类记录何时调用__missing__'并保存新构造的默认值。 – torek