Python管理器通过注册表访问dict

2024-04-20 05:59:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个经理和一个dict代理。我想从另一个进程访问它。为了简洁起见,示例代码只使用一个进程,但假设我们没有对它的直接引用(就像另一个进程是从第一个进程创建的)。 我在“d1”类型下注册dict proxy dict1,以便可以远程访问它。我检查了经理的注册表,看到了那里的dict代理。 但是当我试图通过拨打d1来访问它时,我从遥控器得到了一个键错误。我知道我可以创建一个方法来访问dict,但是必须有一种直接的方法来访问dict代理(python2,第16.6章)。在

from multiprocessing.managers import SyncManager
from sys import stderr

proxy = SyncManager()
proxy.start()

dict1 = proxy.dict({'k1': 'blah'})
proxy.register('d1', dict1)

# next line shows that d1 is bound method of manager
print >>stderr, 'd1 is', proxy.d1

# next line produces a KeyError
print 'The value of d1 is', proxy.d1()

运行输出

^{pr2}$

Tags: 方法fromimport代理进程isstderrline