我正在尝试创建一个函数,该函数将采用随机量的某些定义的参数,而有些则没有。 因此,我具有此搜索功能,该功能有时会使用所有参数,但有时只会使用url,查询和authHeader。
我确实研究过* arg,** kwards,但是AFAIK在这种情况下不适合。 还是在我的情况下总是必须给他们一些价值,例如“ null”?但这意味着我需要为变量分配一个值,而不能同时 pass 呢?
def search(url, query, resultLimit, resultInfoSize, authHeader):
searchRequest = session.post(url + '/services/search?q=' + query + '&num=' + resultLimit + '&datalinesToReturn='+ resultInfoSize, headers=authHeader)
searchData = searchRequest.json()
return searchData
任何意见都很感激。
@Jerrybibo友善地表示我提出了要求:
因此,如果函数中的条件是我想要的,请添加。在调用时不更改函数 if 中的默认值。
def search(url, query, resultLimit, authHeader, resultLimit=None, resultInfoSize=None):
if resultLimit == None: resultLimit='50'
if resultInfoSize == None: resultInfoSize=''
searchRequest = session.post(url + '/services/search?q=' + query + '&num=' + resultLimit + '&datalinesToReturn='+ resultInfoSize, headers=authHeader)
searchData = searchRequest.json()
return searchData
答案 0 :(得分:1)
针对您的问题,我认为解决此问题的一种方法是将几个函数参数设置为默认标记值(通常为None
;在您的方案中使用任何默认值),以便您不必必须在函数调用时传递值;如果您通过它们,它们将像普通参数一样被处理。您的函数定义如下所示:
def search(url, query, authHeader, resultLimit=None, resultInfoSize=None):
另外,如果searchRequest
或resultLimit
为resultInfoSize
,则可能必须在函数中更改None
定义。