Зачем нам нужны map () и apply (), если у нас уже есть starmap ()? - PullRequest
0 голосов
/ 26 декабря 2018
import multiprocessing as mp
pool = mp.Pool()

Насколько я понимаю (пожалуйста, исправьте меня, если не так):

  • map работает с функциями, которые принимают только один входной параметр, и вы можете передать список таких отдельныхпараметр для выполнения нескольких вызовов функций
  • apply работает с функциями, которые могут принимать несколько параметров, но вы можете передать только один кортеж таких параметров, чтобы один вызов функции
  • starmap мог иметь делос обеими многопараметрическими функциями и передаются в списке кортежей параметров

Поскольку starmap может обрабатывать то, что могут map и apply, почему Python предоставляет три функции вместо простоодин?Другими словами, в чем преимущества map и / или apply над starmap?

Обновление

As @ coldspeed указал, что это может быть просто обратная совместимость.Но этот вопрос напрашивается, и я думаю, это то, что меня действительно озадачивает: почему python в первую очередь создал и map, и apply, что так сложно одновременно разрешить использование нескольких параметров и списка заданий?

Надеюсь, что это не закрыто, поскольку считается "главным образом основанным на мнении".Должны быть некоторые причины, по которым можно повсеместно оценить, почему первоначальные разработчики Python сделали две функции, каждая из которых имеет свой собственный предел, вместо одной всесильной.

...