2017-02-02 1 views
1

나는 다음과 같은 코드가 있습니다은 concurrent.futures지도 호출에 의해 호출 함수에

from concurrent.futures import ThreadPoolExecutor 

def spam(url, hello=None, params=None): 
    print(url, hello, params) 

urls = [1, 2, 3, 4, 5] 
params = [(6, 7), 7, ('a', 1), 9, 'ab'] 
with ThreadPoolExecutor(5) as executor: 
    res = executor.map(spam, urls, params) 

이 예상대로 인쇄 :

1 (6, 7) None 
2 7 None 
3 ('a', 1) None 
4 9 None 
5 ab None 

map 기능을 알 수있는 방법이 있나요을 특정 키워드 인수를 사용하여 spam으로 전화 하시겠습니까? 이 예제에서는 값이 params가 다음 행 (이 경우 params)이 아닌 hello 인수로 전달되도록하고 싶습니다.

내가 해결하려고하는 실제 사용 사례는 params= 값을 request.get 반복 URL 호출에 전달하는 것입니다.

답변

2

당신은 람다에 spam을 포장 할 수 map

res = executor.map(lambda x,y:spam(x,params=y), urls, params) 
+0

브릴리언트하고, 감사합니다! :-) – mart1n

관련 문제