1
我有一個方法,我想通過*參數給參數。我想這樣做是爲了保持方法的準確性,因爲它將根據傳遞的參數用於不同的事情。在Python中,如果使用*參數,我必須限制參數的數量嗎?
我想要做的是有一個方法發送請求到web服務。 第一個參數是應該請求的調用,* args應該包含該調用的參數。由於不同的調用有不同數量的參數,因此檢查每次調用passen參數的次數會是一種麻煩,我猜。
如果我使用*參數是否是一個問題,如果我不檢查傳遞參數的數量? 它被認爲是不好的風格?
例子:
call_urls = {'getX': '?requestType=getX&argument1={}',
'getY': '?requestType=getY&argument1={}&argument2{}'
def makerequest(self, call, *args):
url = ''.join([self.base_url, self.call_urls[call].format(*args)])
response = urllib2.urlopen(url)
return response
result = api.makerequest('getX','blabla').read()
print(result)
result = api.makerequest('getY','blublu', 'blibli').read()
print(result)
正如你可以看到我能夠輕易地通過,即使它不會被用於呼叫的另一個理由。
你處理參數的方式是錯誤的。你必須urlescape參數。更好地使用HTTP請求的請求包並通過字典傳輸GET參數。 – Daniel
好點。謝謝 – pypat