У меня была ошибка с некоторой многопроцессорностью с пулом (индекс поп-музыки вне диапазона), и когда я попытался упростить мой код, чтобы опубликовать его здесь, я получаю еще одну ошибку, так что это вид озадачивает, увидеть код здесь:Python: «int not callable» с многопроцессорной обработкой с пулом
def some_function(a, b):
return a*b
neigbhourhood = [[object() for _ in range(3)] for _ in range(3)]
result = [[object() for _ in range(3)] for _ in range(3)]
pool = Pool()
for i in range(0, 3):
for j in range(0, 3):
neigbhourhood[i][j] = pool.apply_async(some_function(i, j))
for k in range(0, 3):
for l in range(0, 3):
result[k][l] = neigbhourhood[k][l].get()
pool.close()
отслеживающий о качестве ИНТ объекта не вызываемым в строке 34 (линия с ГЭТ).
Редактировать: Хорошо, это была типичная ошибка в параметрах pool.apply_async, теперь она работает, но мой реальный код по-прежнему случайно сбой, и я не могу повторить ошибку, когда я упрощаю код, Не понимаю.
Просьба предоставить полный текст отзыва. –
Кажется, что проблема не связана с «линией с' get' ", но вместо этого вы передаете функцию result в' pool.apply_async'. 'some_function (i, j)' уже вычисляет результат, то, что вы хотите сделать, это передать функцию в качестве первого параметра, а аргументы функции - как кортеж, т. е. 'pool.apply_async (some_function, (i, j))'. –