首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >get和[]之间的差异

get和[]之间的差异
EN

Stack Overflow用户
提问于 2012-12-18 17:12:14
回答 3查看 507关注 0票数 0

刚认识Django的人能解释一下

代码语言:javascript
运行
复制
username=form.cleaned_data['username']

代码语言:javascript
运行
复制
username=form.cleaned_data.get('username')
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-18 17:16:52

如果找不到KeyError键,这将引发username

代码语言:javascript
运行
复制
form.cleaned_data['username']

但这将返回None (默认情况下),如果找不到密钥,则不会引发KeyError异常。

代码语言:javascript
运行
复制
form.cleaned_data.get('username')

如果找不到键,也可以选择更改默认返回值(如果使用.get)。

代码语言:javascript
运行
复制
val = form.cleaned_data.get('username', False)
# assume key was not found
print val # should contains False now
票数 3
EN

Stack Overflow用户

发布于 2012-12-18 17:16:35

form.cleaned_data是一本字典。如果您试图像这样通过字典直接访问密钥,如果找不到密钥,则会引发错误。

代码语言:javascript
运行
复制
>>> ex_dict = {}
>>> ex_dict = {'x':1, 'y':2}
>>> ex_dict['z']

Traceback (most recent call last):
  File "<console>", line 1, in <module>
KeyError: 'z'

然而,如果在字典中使用get,它将返回None而不是错误,或者如果找不到键,可以指定期望的返回。

代码语言:javascript
运行
复制
>>> ex_dict.get('z')
>>> ex_dict.get('z', 1)
1
票数 4
EN

Stack Overflow用户

发布于 2012-12-18 17:15:38

来自医生们

get(键,默认) 如果键在字典中,则返回键的值,否则为默认值。如果未给出默认值,则默认为None,因此此方法不会引发KeyError

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13938091

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档