2012-07-18 12 views
8

다음은 함수 호출에서 키워드 인수를 사용하는 간단한 예제입니다. 특별한 것은 없습니다.파이썬 다중 처리 키워드 인수

def foo(arg1,arg2, **args): 
    print arg1, arg2 
    print (args) 
    print args['x'] 

args ={'x':2, 'y':3} 
foo(1,2,**args) 

어느 인화, 예상대로 : 나는 다중 작업에 같은 스타일 키워드 인수를 전달하기 위해 노력하고 있지만,의 사용은 **의 인수 목록에서 구문 오류입니다

1 2 
{'y': 3, 'x': 2} 
2 

. 내 함수 stretch()는 두 개의 위치 인수와 n 개의 키워드 인수를 취한다는 것을 알고 있습니다.

pool = [multiprocessing.Process(target=stretch, args= (shared_arr,slice(i, i+step),**args)) for i in range (0, y, step)] 

다중 처리에 키워드 인수를 전달할 수 있습니까? 프로세스? 그렇다면 어떻게? 그렇지 않다면, 왜?

+1

'args'가 아닌 kwargs라는 이름을 지정해야합니다. – kev

답변

15

키워드 args로 사용하는 사전은 Process 개체에 대한 kwargs 매개 변수로 전달되어야합니다.

pool = [multiprocessing.Process(target=stretch, args= (shared_arr,slice(i, i+step)),kwargs=args) for i in range (0, y, step)] 
+0

긁힘. 그것도 움직이는 작업을 얻었습니다. 감사! – Jzl5325

관련 문제