import multiprocessing as mp
pool = mp.Pool()
Насколько я понимаю (пожалуйста, исправьте меня, если не так):
map
работает с функциями, которые принимают только один входной параметр, и вы можете передать список таких отдельныхпараметр для выполнения нескольких вызовов функций apply
работает с функциями, которые могут принимать несколько параметров, но вы можете передать только один кортеж таких параметров, чтобы один вызов функции starmap
мог иметь делос обеими многопараметрическими функциями и передаются в списке кортежей параметров
Поскольку starmap
может обрабатывать то, что могут map
и apply
, почему Python предоставляет три функции вместо простоодин?Другими словами, в чем преимущества map
и / или apply
над starmap
?
Обновление
As @ coldspeed указал, что это может быть просто обратная совместимость.Но этот вопрос напрашивается, и я думаю, это то, что меня действительно озадачивает: почему python в первую очередь создал и map
, и apply
, что так сложно одновременно разрешить использование нескольких параметров и списка заданий?
Надеюсь, что это не закрыто, поскольку считается "главным образом основанным на мнении".Должны быть некоторые причины, по которым можно повсеместно оценить, почему первоначальные разработчики Python сделали две функции, каждая из которых имеет свой собственный предел, вместо одной всесильной.