Python: вернуть пользовательский класс в функцию Pool Map.«Ошибка отправки результата: Причина: 'AttributeError (« Объект «NoneType» не имеет атрибута «picklable» »)» - PullRequest
0 голосов
/ 24 мая 2019

Я использую функцию 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'")'

Почему можно 'я возвращаю свой объект класса в функции карты?

...