Tengo una función que toma varios argumentos, algunos de los cuales son booleanos. Estoy tratando de pasar esto al multiprocesamiento pool.apply_async
y quiero pasar algunos argumentos con los nombres adjuntos.multiproceso de python con argumentos booleanos y múltiples
Aquí es un script de ejemplo que estoy trabajando con:
from multiprocessing import Pool
def testFunc(y, x, calcY=True):
if calcY == True:
return y*y
elif calcY == False:
return x*x
if __name__ == "__main__":
p = Pool()
res = p.apply_async(testFunc, args = (2, 4, False))
print res.get()
Esto funciona, pero tengo curiosidad acerca de cambiar el res = p.apply_async(testFunc, args = (2, 4, False))
a algo como:
res = p.apply_async(testFunc, args = (2, 4, calcY = False))
¿Has probado map_async (testFunc, 'args = (2, 4), kwargs = dict (calcY = False))'? –
'map_async' no toma una palabra clave' args' ni 'kwargs'. Su código de ejemplo debería haber generado un TypeError. – unutbu
@unutbu Lo siento, debería haber sido apply_async. He editado el código para reflejar esto. – user1074057