Многопроцессорность Python — прокси-сервер менеджера — возврат прокси-сервера в управляемый объектPython

Программы на Python
Anonymous
Многопроцессорность Python — прокси-сервер менеджера — возврат прокси-сервера в управляемый объект

Сообщение Anonymous »

Предположим следующую настройку:

Код: Выделить всё

class Foo:
def __init__(self) -> None:
self._x: str = ''

def get_x(self) -> str:
return self._x

class FooProxy(BaseProxy):
_exposed_ = ['get_x']

def get_x(self):
return self._callmethod('get_x')

class FooManager:
def __init__(self) -> None:
self._foos: list[Foo] = [Foo(), Foo()]

def indices(self):
return len(self._foos)

def get_foo(self, index: int):
return self._foos[index]

class FooManagerProxy(BaseProxy):
_exposed_ = ['get_foo', 'indices']

def indices(self):
return self._callmethod('indices')  # OK

def get_foo(self, index: int):
return self._callmethod('get_foo', args=(index,))  # Want to return proxy ??

foo_manager: FooManager = FooManager()

def get_foo_manager():
return foo_manager

class MyManager(BaseManager):
pass

MyManager.register('get_foo_manager', get_foo_manager, FooManagerProxy)
Как я могу вернуть FooProxy из функции FooManagerProxy.get_foo, чтобы при вызове этого метода от клиента я получал прокси для объекта foo вместо получения копии этого объекта ?


Подробнее здесь: https://stackoverflow.com/questions/787 ... ged-object

Вернуться в «Python»