Я использую функцию pool.map(...)
пакета Python multiprocessing
для распараллеливания некоторой задачи.
class ReturnMe:
def __init__(self, some_value: str):
self.some_value = some_value
class ClassA:
def run()
num_cpu : int = multiprocessing.cpu_count()
pool = Pool(num_cpu)
input_list: List[OtheCustomClass] = self.get_some_of_these_objects('someVar')
# The next line causes an error
returned_objects : List[ReturnMe] = pool.map(self.some_work, input_list)
pool.close()
pool.join()
def some_work(self, input_list_item) -> ReturnMe:
helper = Helper()
if helper.check(input_list_item):
return ReturnMe(input_list_item.some_value)
return None
Это приводит к следующей ошибке:
multiprocessing.pool.MaybeEncodingError: Error sending result: '[<....ReturnMe object at 0x0000028791CD3B70>]'. Reason: 'AttributeError("'NoneType' object has no attribute 'picklable'")'
Почему можно 'я возвращаю свой объект класса в функции карты?