我正在尝试创建一个函数,该函数将随机选取一些已定义的参数,而另一些则不是。 所以我有一个搜索函数,它有时接受所有参数,但有时只接受url、query和authHeader
我确实研究过arg和kwards,但恐怕它们不适合这种情况。 或者我总是要给它们一些值,比如“null”?但这意味着我需要给变量赋值,而不是仅仅传递它
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
看看你的问题,我认为解决这个问题的一种方法是将函数的几个参数设置为默认的sentinel值(通常是
None
;使用在您的场景中有意义的默认值),这样您就不必在函数调用时传递值;如果你传递了它们,它们就会像正常参数一样被处理。函数定义如下所示:此外,如果
resultLimit
或resultInfoSize
是None
,则可能必须更改函数中的searchRequest
定义相关问题 更多 >
编程相关推荐