Pyro4: вызов удаленного метода из удаленного пирообъекта - PullRequest
0 голосов
/ 16 марта 2020

Я пытаюсь вызвать метод объекта 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

...