send_request()获得了意外的关键字参数'user_id_type'

时间:2018-08-14 04:06:02

标签: python python-2.7

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

我具有以下功能:

-z

当调用这样的函数时:

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):

得到以下错误:

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")

1 个答案:

答案 0 :(得分:0)

将user_id_type添加到send_requests参数

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。

def send_request(**kwargs):
    print kwargs
    return

并执行以下操作

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)

这是正确的方法。这样,您可以添加尽可能多的参数。希望这行得通。

疣是

{'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'}