![](https://img.haomeiwen.com/i8384805/3c5b212d6ec1b1d9.png)
上面多进程实现中,最不可思议的应该是这么一条语句:ret = Parallel(n_jobs=1)(delayed(math_ops)(data_increment(my_sqrt(i)))for iin range(10))
下面这条语句更好玩,具体理解请自己琢磨:
def math_ops(j):
return j
def math2(i, j):
return i*j
ret = Parallel(n_jobs=1)(delayed(math2)(math_ops(i), math2(i, i))for iin range(3))
但是为什么可以这么写呢,是因为在Parallel类中定义了__call__方法,如下图所示:
![](https://img.haomeiwen.com/i8384805/899f85c048e8affd.png)
![](https://img.haomeiwen.com/i8384805/dff0e271a8318bb0.png)
网友评论