2012-09-18 8 views
6

여러 인수를 사용하는 함수가 있는데 그 중 일부는 부울입니다. 이걸 다중 처리 pool.apply_async에 전달하려고 시도하고 있으며 이름이 첨부 된 일부 args를 전달하려고합니다. 여기 부울 및 다중 인수를 사용하는 파이썬 다중 처리

내가 함께 일하고 있어요 예제 스크립트입니다 :

from multiprocessing import Pool 

    def testFunc(y, x, calcY=True): 
     if calcY == True: 
      return y*y 
     elif calcY == False: 
      return x*x 

    if __name__ == "__main__": 
     p = Pool() 
     res = p.apply_async(testFunc, args = (2, 4, False)) 
     print res.get() 

이 작동하지만, 내가 좋아하는 뭔가에 res = p.apply_async(testFunc, args = (2, 4, False)) 변경에 대한 궁금 :

res = p.apply_async(testFunc, args = (2, 4, calcY = False)) 
+2

map_async (testFunc,'args = (2, 4), kwargs = dict (calcY = False))를 해 보셨습니까? –

+0

'map_async'는'args' 나'kwargs' 키워드를 사용하지 않습니다. 예제 코드가 TypeError를 발생시켜야합니다. – unutbu

+0

@unutbu 죄송합니다. apply_async가되어야합니다. 이를 반영하기 위해 코드를 편집했습니다. – user1074057

답변

8

apply_asyncargskwds있다 다음과 같이 사용할 수있는 키워드 인수 :

res = p.apply_async(testFunc, args=(2, 4), kwds={'calcY': False}) 
관련 문제