我有一个带有多个参数的函数,其中一些是布尔值。我正在尝试将其传递给多处理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))
答案 0 :(得分:12)
apply_async有args
和kwds
个关键字参数,您可以这样使用:
res = p.apply_async(testFunc, args=(2, 4), kwds={'calcY': False})