Я пытаюсь разделить экземпляр класса между некоторыми процессами в 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>>
И, очевидно, я не могу вызвать ни один метод моего класса с этим объектом ...
Есть ли способ достичь этого?
Спасибо!