我是Python的新手。面对下面的问题。
我有以下功能:
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")获取以下错误:
TypeError: send_request() got an unexpected keyword argument 'user_id_type'发布于 2018-08-15 00:28:15
向send_requests参数添加user_id_type
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'}https://stackoverflow.com/questions/51833556
复制相似问题