如何解决缺少必需的位置参数:Python:自我
遇到错误:
TypeError: _get_request() missing 6 required positional arguments: 'id_list','id_item','to_be_sent','open','received',and 'sent'
当我尝试调用该函数时:
def _get_request(self,id: str,id_list: List[str],id_item: List[int],to_be_sent: List[int],open: List[int],received: List[int],sent: List[int]):
return {
'id': user_id,'num_results': 3,'id_list': uniqueVisitId,'id_item': id_item,'to_be_sent': need_to_be_sent,'open': open,'received': received,'sent': sent
}
通过:
self._get_request(
{
'id': 'x','id_list': ['a','x'],'id_item': [1,2],'to_be_sent': [1,0],'open': [0,'received': [0,'sent': [0,0]
}
)
有人猜为什么我的函数无法识别我要传递的位置参数吗?
解决方法
因为您传递的是字典而不是参数...
您应按顺序传递参数,而不使用Dict语法:
self._get_request('x',['a','x'],[1,2],0],[0,0])
,
在字典项之前使用**
将其解析为函数中的key = value
def foo(*,a,b):
return a,b
dict = {'a': 1,'b': 2}
print(foo(dict)) # -> missing
print(foo(**dict)) # -> returns (1,2)
,
您只传递了一个参数-字典。如果您只是编写对get_request()的特定调用,并且/或者字典将始终具有该组指定的键,请执行adir所说的。如果您要传递的字典来自其他地方,则可能具有不同的关键字。那么您可以像这样使用字典解压缩:
# Assigning it just for the example,might be the result from a function or whatever you're doing
request_info_dict = {
'id': 'x','id_list': ['a','id_item': [1,'to_be_sent': [1,'open': [0,'received': [0,'sent': [0,0]
}
self._get_request(**request_info_dict)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。