我正在尝试p1.get_name()
从另一个远程 Pyro 对象调用 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())
干杯,/纳斯