기능

2014-12-09 3 views
2

멀티 프로세싱에 항목의 목록을 전달 나는 다음과 같은 기능이 있습니다 :기능

def create_job(target, args): 
    p = multiprocessing.Process(target=target, args=args) 
    p.start() 
    return p 

위의 함수가 호출됩니다 :

ps = create_job(mc.collect_categories, (cat_ids),) 

존재는 'IDS'의 목록을 cat_ids : [ 'ML68을 ','MA453 ','MA33 ']

나는 (10 cat_ids의 목록) 나는 다음과 같은 오류가 코드를 실행하면 :

,

압축을 풀기 위해 '*'값을 전달하려고했으나 문제가 아닙니다.

답변

1

(cat_ids)cat_ids과 동일합니다. 대신에 하나 개의 요소로 튜플을 표시하기 위해 (cat_ids,)를 사용 :

def create_job(target, *args): 
    p = multiprocessing.Process(target=target, args=args) 
    p.start() 
    return p 

와 함께 create_job를 호출 : 또는

ps = create_job(mc.collect_categories, (cat_ids,),) 

, 당신은 create_jobusing *args을 정의 할 수

ps = create_job(mc.collect_categories, cat_ids) 

내부 create_job 일 때 변수 args은 에 전달 된 모든 위치 지정 인수 (첫 번째 인수 제외)의 튜플입니다. 정확히 Process에 전달할 값입니다.