2011-10-21 42 views
1

我有一個對象列表,我想調用它們的foo函數,並將它傳遞給參數欄。我想並行化這個操作,所以現在我正在考慮使用多處理包中的Pool.map。不過,我不確定如何使用map來運行對象方法。我怎樣才能做到這一點?或者有更好的方法可以並行執行此操作嗎?並行化對象方法的調用

回答

2

定義一個輔助函數並通過Pool.map將對象方法及其參數傳遞給該函數。輔助函數會是這個樣子:

def helper(*args): 
    return args[0](*args[1:]) 

而且你會使用這樣的:

pool = Pool() 
results = pool.map(helper, [obj.method, arg1, arg2]) 

注意,輔助函數必須從它包含模塊直接可導入。