例如:
class multiprocessing.pool' s功能:
apply_async(func[, args[, kwds[, callback]]])
方括号是什么意思?
在以下代码中,当使用函数apply_async
时,为什么args=(i,)
如果args=i
,则它无法正常工作。
from __future__ import print_function
from multiprocessing import Pool
import os
import random
import time
def appear(name):
print("{0} running {1} task".format(name, os.getpid()))
start=time.time()
time.sleep(random.random() * 3)
end=time.time()
print("{0} running for {1} seconds".format(name, (end - start)))
def f(a):
return a * a
p=Pool()
for i in range(5):
p.apply_async(appear, args=(i,))
print("waiting for all subprocess done..")
p.close()
p.join()
print("all done")
Python的模块函数有很多参数。很难理解它们。
答案 0 :(得分:3)
方括号只表示参数是可选。您可以在不指定括号中的参数的情况下调用该方法。
文档指向apply()
function;您也想阅读该功能的文档。它解释了不同论点的含义;比如args
:
args 参数必须是序列。
args=i
不是序列,而args=(i,)
则是; (i,)
是一个元素元组,元组是一个序列。