首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >send_request()获得意外的关键字参数“”user_id_type“”

send_request()获得意外的关键字参数“”user_id_type“”
EN

Stack Overflow用户
提问于 2018-08-14 12:06:02
回答 1查看 589关注 0票数 0

我是Python的新手。面对下面的问题。

我有以下功能:

代码语言:javascript
复制
def send_request(api_service_name, api_url, parameters, method='GET', access_token='', user_data='',
                 request_header=None, user_id_type=None, connection_timeout=CONNECTION_TIMEOUT, timeout=TOTAL_TIMEOUT,
                 auth_string=AUTH_STRING_AUTHORIZATION, scope=SCOPE_DEFAULT):

当像这样调用函数时:

代码语言:javascript
复制
def associate_user(self):
    self.response = send_request(api_service_name=ASSOCIATION_MODULE,
                                 api_url=URL_ASSOCIATION,
                                 parameters='',
                                 method='POST',
                                 access_token='',
                                 user_data=self.payload_for_device_association(),
                                 request_header=HEADER_USER_BOTH,
                                 user_id_type="yes")

获取以下错误:

代码语言:javascript
复制
TypeError: send_request() got an unexpected keyword argument 'user_id_type'
EN

回答 1

Stack Overflow用户

发布于 2018-08-15 00:28:15

向send_requests参数添加user_id_type

代码语言:javascript
复制
def send_request(api_service_name, api_url, parameters, method='GET', access_token='', user_data='',
             request_header=None, user_id_type=None, connection_timeout=CONNECTION_TIMEOUT, timeout=TOTAL_TIMEOUT,
             auth_string=AUTH_STRING_AUTHORIZATION, scope=SCOPE_DEFAULT, user_id_type=False):


    <statements>
    return

然后你就可以使用user_id_type了。

此外,我不认为使用yes或no是一个好主意,使用True或False是好的。

当函数定义中有很多参数时,添加参数并不是一个好的做法,使用**kwargs是很好的做法。

代码语言:javascript
复制
def send_request(**kwargs):
    print kwargs
    return

并按如下方式进行操作

代码语言:javascript
复制
def associate_user(self):
    self.response = send_request(api_service_name = ASSOCIATION_MODULE,
                             api_url = URL_ASSOCIATION,
                             parameters= '',
                             method= "POST",
                             access_token = '',
                             user_data = self.payload_for_device_association(),
                             request_header = HEADER_USER_BOTH,
                             user_id_type= True)

这才是正确的做法。通过这种方式,您可以添加尽可能多的参数。希望这能起作用。

尖锐湿瘤会是

代码语言:javascript
复制
{'api_url': 'URL_ASSOCIATION', 'parameters': '', 'access_token': '', 'user_id_type': True, 'user_data': 'self.payload_for_device_association()', 'api_service_name': 'ASSOCIATION_MODULE', 'method': 'POST', 'request_header': 'HEADER_USER_BOTH'}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51833556

复制
相关文章

相似问题

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