我是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")
答案 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'}