简体   繁体   English

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

[英]python multiprocessing with boolean and multiple arguments

I have a function that takes multiple arguments, some of which are boolean. 我有一个带有多个参数的函数,其中一些是布尔值。 I'm trying to pass this to the multiprocessing pool.apply_async and want to pass some args with the names attached. 我正在尝试将此传递给多处理pool.apply_async并希望传递一些附加了名称的args。

Here's an example script that I'm working with: 这是我正在使用的示例脚本:

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()

This works, but I'm curious about changing the res = p.apply_async(testFunc, args = (2, 4, False)) to something like: 这有效,但我很好奇将res = p.apply_async(testFunc, args = (2, 4, False))改为:

res = p.apply_async(testFunc, args = (2, 4, calcY = False))

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

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM