2012-11-21 3 views
2

pool.map을 통해 호출하는 함수에 여러 인수를 전달하려면 어떻게해야합니까?Python gevent : pool.map을 통해 호출 된 함수에 여러 인수 전달

내 코드 :

import gevent 
from gevent.pool import Pool 

def process(param1, param2): 
    return "dosomething" 

pool = Pool(10) 
jobs = [('arg1a', 'arg1b'), ('arg2a', 'arg2b')] 

# should pass arguments so that it results in these calls 
# process(param1=arg1a, param2=arg1b) 
# process(param1=arg2a, param2=arg2b) 
results = pool.map(process, jobs) # does not work 
+0

그것은처럼 보일 수 있습니다' pool.map (풀 (프로세스), 작업)'. 원하면'funcy' 라이브러리에'unpack' 꾸러미를 추가 할 수 있습니다. https://github.com/Suor/funcy/pull/62 – ADR

답변

3

gevent.Pool.map 방법은 단 하나의 항목이 귀하가 제공하는 함수에 인수로 전달 될 수 있도록 나타납니다.

def process(params): 
    param1, param2 = params 
    ... 

또는 당신은 pool.map에 바로 호출에 람다 식으로 풀고 인수를 처리 할 수있는 : 그러나, 당신은 아주 쉽게 인수를 풀고 기능을 코딩 할 수 있습니다

results = pool.map(lambda args: process(*args), jobs) 
관련 문제