带有布尔和多个参数的python多处理

时间:2012-09-18 18:10:10

标签: python multiprocessing

我有一个带有多个参数的函数,其中一些是布尔值。我正在尝试将其传递给多处理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))

1 个答案:

答案 0 :(得分:12)

apply_asyncargskwds个关键字参数,您可以这样使用:

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