Python 我可以通过setdefault设置默认值吗
如果我在dict上设置了一个默认值,那么在它被覆盖后是否有可能恢复默认值 像这样:Python 我可以通过setdefault设置默认值吗,python,Python,如果我在dict上设置了一个默认值,那么在它被覆盖后是否有可能恢复默认值 像这样: 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.
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[“饮料”]=“黄尿”
一旦被处决,茶就永远失去了。但这将是一个很好的功能:-)
有人对此有更深入的了解吗?不,不可能。所有
setdefault
所做的都是以下逻辑:
if key not in the_dict:
the_dict[key] = value
return the_dict[key]
它不会专门处理“默认”值,并且不会将其存储在您要覆盖的位置以外的任何位置
如果您想要一组持久的默认值,最好只保留一个单独的默认值。所有
setdefault
所做的都是以下逻辑:
if key not in the_dict:
the_dict[key] = value
return the_dict[key]
它不会专门处理“默认”值,并且不会将其存储在您要覆盖的位置以外的任何位置
如果您想要一组持久的默认值,最好只保留一个单独的默认值
dict
。值得注意的是,您可以对defaultdict
进行子类化,并覆盖\uu missing\uu
函数,因此,您可以获得一个新类,该类可以记住何时调用\uuuuu missing\uuuu
,并保存新构造的默认值。值得注意的是,您可以将defaultdict
子类化,并覆盖\uuu missing\uuu
函数,这样,您就可以得到一个新类,它可以记住何时调用\uuuu missing\uuuu
,并保存新构造的默认值。