相关疑难解决方法(0)

TypeError:get()不带关键字参数

我是Python的新手,我正在尝试基本上创建一个哈希表,检查一个键是否指向表中的值,如果不是,则将其初始化为空数组.我的代码的违规部分是行:

converted_comments[submission.id] = converted_comments.get(submission.id, default=0)
Run Code Online (Sandbox Code Playgroud)

我收到错误:

TypeError: get() takes no keyword arguments
Run Code Online (Sandbox Code Playgroud)

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

https://docs.python.org/2/library/stdtypes.html#dict.get http://www.tutorialspoint.com/python/dictionary_get.htm

以下是get()方法的语法:

dict.get(key,default = None)

在堆栈上没有任何关于这个,所以我认为这是一个初学者的错误?

python

49
推荐指数
3
解决办法
5万
查看次数

python不接受关键字参数

我试图让我的代码不接受关键字参数,就像一些bulitins也是不接受的关键字参数,但是,我不能这样做.在这里,根据我的有限理解,我的想法是: -

def somefunc(a,b):
    print a,b

somefunc(10,20)
Run Code Online (Sandbox Code Playgroud)

输出:

10 20
Run Code Online (Sandbox Code Playgroud)

现在,当我运行以下内容时(我知道这不是函数定义中的关键字参数,但是,查看函数调用,它似乎与调用接受关键字参数的函数时的语法相同) :

somefunc(b=10,a=20)
Run Code Online (Sandbox Code Playgroud)

输出:

20 10
Run Code Online (Sandbox Code Playgroud)

我有两个问题: -

  1. 查看函数调用somefunc(b=10,a=20)而不是函数定义,这似乎是对只接受普通参数的函数的调用或接受关键字参数的函数.口译员如何区分两者?
  2. 是否有可能在表单中转换我们的任何函数,以便它不像许多内置函数那样接受关键字参数?

为什么我要这样做呢? 我只是在检查我是否可以这样做,所以我不会错过任何深入理解python的东西.我知道python是否允许这样做.

python keyword-argument

6
推荐指数
2
解决办法
8552
查看次数

标签 统计

python ×2

keyword-argument ×1