Mam funkcję, która przyjmuje wiele argumentów, z których niektóre są wartością logiczną. Próbuję przekazać to do wieloprocesowości pool.apply_async
i chcę przekazać niektóre argumenty z załączonymi nazwami.Python do przetwarzania wieloprocesorowego z argumentami boolowskimi i wieloma argumentami
Oto przykładowy skrypt, który pracuję z:
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()
To działa, ale jestem ciekawy temat zmiany res = p.apply_async(testFunc, args = (2, 4, False))
coś jak:
res = p.apply_async(testFunc, args = (2, 4, calcY = False))
wypróbowałeś map_async (testFunc, 'args = (2, 4), kwargs = dict (calcY = False))'? –
'map_async' nie zawiera słowa kluczowego' args' ani 'kwargs'. Twój przykładowy kod powinien wywołać TypeError. – unutbu
@unutbu Przepraszam, to powinno być apply_async. Zmodyfikowałem kod, aby to odzwierciedlić. – user1074057