首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >TypeError: get()不使用关键字参数

TypeError: get()不使用关键字参数
EN

Stack Overflow用户
提问于 2014-06-28 03:08:22
回答 3查看 114K关注 0票数 83

我是Python的新手,我尝试创建一个哈希表,检查一个键是否指向表中的值,如果不是,则将其初始化为一个空数组。我的代码中令人不快的部分是行:

代码语言:javascript
代码运行次数:0
运行
复制
converted_comments[submission.id] = converted_comments.get(submission.id, default=0)

我知道错误:

代码语言:javascript
代码运行次数:0
运行
复制
TypeError: get() takes no keyword arguments

但是在文档(以及各种示例代码)中,我可以看到它确实采用了一个默认参数:

https://docs.python.org/2/library/stdtypes.html#dict.get get.htm

下面是get()方法的语法: dict.get(key,default=None)

堆栈上什么都没有,所以我想这是初学者的错误吧?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-28 03:09:39

错误消息说get不接受关键字参数,但是您提供了一个带有default=0的关键字参数。

代码语言:javascript
代码运行次数:0
运行
复制
converted_comments[submission.id] = converted_comments.get(submission.id, 0)
票数 38
EN

Stack Overflow用户

发布于 2014-06-28 03:12:31

由于Python级API的开发方式,许多内置函数和方法实际上没有它们的参数名称。即使文档调用参数default,函数也不会将名称default识别为引用可选的第二个参数。您必须按位置提供该论点:

代码语言:javascript
代码运行次数:0
运行
复制
>>> d = {1: 2}
>>> d.get(0, default=0)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: get() takes no keyword arguments
>>> d.get(0, 0)
0
票数 188
EN

Stack Overflow用户

发布于 2020-09-23 12:03:54

许多文档和教程,例如get.htm,错误地将语法指定为

dict.get(key, default = None)

而不是

dict.get(key, default)

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

https://stackoverflow.com/questions/24463202

复制
相关文章

相似问题

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