Python 3.x - экземпляр класса в разделяемой памяти (многопроцессорная обработка) - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь разделить экземпляр класса между некоторыми процессами в Python (3.6 +).

Я использую BaseManager, и я могу поместить класс в разделяемую память, но не экземпляр, если я пытаюсь получить его, я получаю метод, а не мой экземпляр ..

Рабочий пример:

from multiprocessing.managers import BaseManager

class MyClass:
    def __init__(self):
        pass
    def test(self):
        print("Hi !")

manager = BaseManager()
manager.register('MyClass', MyClass)
manager.start()
my_class = manager.MyClass()
my_class.test()

Чего я пытаюсь достичь:

from multiprocessing.managers import BaseManager

class MyClass:
    def __init__(self):
        pass
    def test(self):
        print("Hi !")

manager = BaseManager()
manager.register('MyClass', MyClass())
manager.start()
my_class = manager.MyClass
my_class.test()

Ошибка:

AttributeError: 'function' object has no attribute 'test'

Дамп найденного объекта:

<bound method BaseManager.register.<locals>.temp of <multiprocessing.managers.BaseManager object at 0x7f73a3259240>>

И, очевидно, я не могу вызвать ни один метод моего класса с этим объектом ...

Есть ли способ достичь этого?

Спасибо!

...