我的意图是d即使key缺少项目(标识为),也有一个默认值adict.
d = QueryDict('')
try:
if adict['key'] is not None:
d = adict['key'].copy()
except KeyError:
pass
# use d ...
Run Code Online (Sandbox Code Playgroud)
我对使用该异常处理程序感到畏缩.我违反了任何python代码样式吗?
这可能会更好:
d = (adict.get('key') or QueryDict('')).copy()
Run Code Online (Sandbox Code Playgroud)
但是,这可能并不明显,所以这可能更可取:
if 'key' in adict and adict['key'] is not None:
d = adict['key'].copy()
else:
d = QueryDict('')
Run Code Online (Sandbox Code Playgroud)
你可以使用:
d = adict.get('key', QueryDict('')).copy()
Run Code Online (Sandbox Code Playgroud)
这就赋予d的价值adict[key],如果在字典中存在的关键,或者如果没有,则d获取QueryDict('')它的价值.
或者,您可以使用
d = adict.setdefault('key', QueryDict('')).copy()
Run Code Online (Sandbox Code Playgroud)
这也指定了密钥是否存在d的值adict[key],但是如果密钥不存在,则为其adict[key]分配值QueryDict('')并将该值赋值给d.
查看docs.python.org上的词典文档.
| 归档时间: |
|
| 查看次数: |
282 次 |
| 最近记录: |