函数的搜索定义为
def _mget_search(query, with_scores=False, count=False, record_term=True,
**kwargs):
此函数使用关键字参数调用。在
^{pr2}$函数参数搜索包含as
{'count': False, 'min_score': 20, 'end': 49, 'with_scores': False, 'start': 0, 'query': u'ouuuuu', 'max_score': inf, 'record_term': True}
我得到了这个错误-
_mget_search() got multiple values for keyword argument 'query'
我无法理解为什么会发生这种情况,以及如何纠正它。在
**kwargs允许您将关键字可变长度的参数传递给函数。如果要处理函数中的命名参数,应该使用**kwargs。下面是一个示例,可以让您使用它:
我认为问题是因为
query
被定义为一个位置参数,所以当你用**传递的字典被解包时,第一个条目(不管它的名字)被用于查询,然后查询也会出现在字典中,因此query
有多个值。在尝试通过将查询设置为命名参数来修复:
或者,在传递查询时不要在字典中包含查询。在
这是因为你正在解开你试图传递的论点。尝试使用:
编辑
让我们更深入地研究这个问题。我们将定义两个函数,看看它们在传递各种参数时的行为。在
^{pr2}$在第3次调用中,我们分别传递了3个参数,这与我们使用第7个调用时调用未打包的列表相同。与调用
fun2
时的情况进行比较。在相关问题 更多 >
编程相关推荐