2017-08-16 88 views
1

我正在使用Pool使用starmap多線程程序來傳遞參數。在Python中使用Pool時將kwargs傳遞給starmap

我堅持,因爲我似乎無法找到一種方法,通過kwargs與我傳遞的星圖功能拉鍊陣列一起。

pool = Pool(NO_OF_PROCESSES) 
branches = pool.starmap(fetch_api, zip(repeat(project_name), api_extensions)) 

分支機構的要求是不完整的我仍然無法弄清楚如何通過關鍵字參數。

def fetch_api(project_name, api_extension, payload={}, headers={}, API_LINK=API_LINK, key=False): 
    headers[AUTH_STRING] = 'Gogo' 
    call_api = API_LINK + project_name + api_extension 
    response_api = requests.get(call_api, headers=headers, params=payload) 

    if key: return project_name + ':' + response_api 
    else: return response_api 

儘管主叫fetch_api()從分支線,我想通過有效載荷爲{ 'A':1}和鍵=真。

請指導我的方向或答案。謝謝。使用Python 3.3+。

回答

0

如果kwargs是same.then可以使用functools.partial()

from functools import partial 

mapfunc = partial(fetch_api, payload= {'a':1}) 
map(mapfunc, zip()) 

否則,你只能使用pool.apply()