Я пытаюсь вызвать метод объекта Pyro p1.get_name()
из другого удаленного объекта Pyro p2
. Метод должен возвращать имя объекта p1
, но он ничего не возвращает (пустая строка). Удивительно, но я вижу, что p1
доступен из p2
, потому что когда я вызываю p1.print_hello()
, это работает. Кажется, что передан новый экземпляр, а не инициализированный, я не уверен, что происходит. Пожалуйста, посмотрите на следующий код, спасибо за вашу помощь!
Следующий фрагмент кода создает прокси (для удобства чтения я игнорировал сервер имен и создавал демоны):
def create_proxy(ns_host, thing_host):
ns = Pyro4.locateNS(host=ns_host)
uri = ns.lookup(thing_host)
return Pyro4.Proxy(uri)
p1 = create_proxy('localhost', 'host1')
p1.init()
p2 = create_proxy('localhost', 'host2')
p2.init(p1)
Определения классов для объектов p1 и p2 выглядят следующим образом:
Class Host1:
def __init__(self)
self.name = ''
def init(sut):
self.name = 'host 1'
def get_name(self):
return self.name
Class Host2:
def init(p):
print('Host name: ', p.get_name())
Приветствия, / Nas