如果我们已经有了starmap(),为什么我们需要map()和apply()?

时间:2018-12-26 04:56:10

标签: python-3.x multiprocessing apply starmap

import multiprocessing as mp
pool = mp.Pool()

据我了解(如果有误,请纠正我):

  • map适用于仅使用一个输入参数的函数,并且您可以 可以传入此类单个参数的列表以进行多个函数调用
  • apply适用于可以采用多个参数的函数,但是您可以 只能传递一个这样的参数的元组来进行一个函数调用
  • starmap可以处理多参数功能并可以通过 在参数元组列表中

由于starmap可以处理mapapply所具有的功能,因此Python为什么提供三个功能而不是仅提供三个功能?换句话说,map和/或applystarmap有什么优势?

更新

正如 @coldspeed 所指出的,它可以向后兼容。但这引出了问题,我想这实际上是让我感到困惑的地方:python为什么首先使mapapply都变得如此,要允许多参数和工作列表有什么困难?同时?

希望由于被认为是“主要基于意见的”而无法关闭。原始的python开发人员为什么要使两个函数各有其自身的局限性,而不是一个单一的全能的函数,所以必须有一些可以被普遍理解的原因。

0 个答案:

没有答案