有人可以告诉我python文档说的话:
apply_async(func [,args [,kwds [,callback]]])
我不确定func,args,kwds和callback在这里应该是什么意思。据我所知,你基本上将apply_async传递给一个函数,然后使用该函数的参数(大概这就是" func"和#34; args"意思)。我不清楚什么" kwds"或者"回调"是,或为什么方括号以它们的方式嵌套在彼此之内。有人可以解释一下吗?
答案 0 :(得分:2)
括号表示该字段是可选的。你必须传递apply_async一个函数名(func),你可以传递它的参数,关键字等。
我会想象它是在python样式指南中,虽然我没有搜索验证: https://www.python.org/dev/peps/pep-0008/
(即使这个答案不在那里,指南也值得一读!)
编辑:
要扩展这一点 - 如果你有一个不带任何参数的函数(比如它随机种子然后执行一些计算)你可以用它来调用它:
from multiprocessing import Pool
pool = Pool(4) # use four processes
pool.apply_async(function_name)
如果你的函数需要参数,那么这可行:
pool.apply_async(function_name, argument_name)
或:
pool.apply_async(function_name, args =(arg1_name, arg2_name))
如果您使用关键字:
pool.apply_async(function_name, args=(arg1, arg2, etc), kwds={key_name: value_name})
到目前为止,我没有理由使用关键字,参数总是做我需要的。我遗漏了kwds中可能有特殊的深层魔法,因为它没有出现在我身上。