-1

我可以通过 Pyro 连接发送 math.sqrt,但是我无法通过 Pyro 连接发送我自己定义的函数。

当我这样做时,我得到一个泡菜函数错误。

接收模块和发送模块都定义了函数。

Pyro.core.initClient()
    connection = Pyro.core.getProxyForURI("PYRONAME://HelloWOlrd")

print connection.makeRequest(my_function)

在我的接收方:

def makeRequest(self, function):
    return function(9)

同样,如果我通过连接发送一个 math.sqrt 函数,它会打印出预期的 3,但如果我尝试通过我创建的函数发送,它会给我一个 pickle 错误:

cPickle.PicklingError: Can't pickle : attribute lookup builtin .function failed

同样,接收模块和发送模块都具有在其名称中定义的功能。

有谁知道我该如何解决这个问题?

4

1 回答 1

1

你不能腌制类方法,有一个关于它的增强请求http://bugs.python.org/issue9276

查看那里可以选择哪些对象并适当地修改您的代码。

于 2013-10-26T15:15:04.243 回答