我有以下 python 字典:
box = {
'name': 'Test',
'length': 10,
'width': 20
}
在将它传递给修改它的函数时,我需要保留对该对象的引用。该函数将提供缺少的默认信息(height
在本例中):
def update_box(params):
defaults = {
'name': 'Default',
'length': 5,
'width': 5,
'height': 5
}
defaults.update(params)
params = defaults
return params
现在我需要box
从函数外部访问属性。例如:
box = {
'name': 'Test',
'length': 10,
'width': 20
}
update_box(box)
print box['name'] # should output 'Test'
print box['height'] # should output 5
当然,这不起作用,因为
函数params = default
中的行重新分配给,在 之外没有引用。如果我删除该行,则不会修改。update_box
params
defaults
update_box
box
我想做的是有某种与 dictupdate()
方法相反的方法,它允许我用默认值为对象“填充空白”,同时仍然保持对原始对象的引用。做这个的最好方式是什么?
另外,这个例子被简化了,所以我不能只使用update_box
. 谢谢你的帮助!