我正在使用 Python RPyC 在两台机器之间进行通信。由于链接可能容易出错,我希望有一个通用包装函数,它以远程函数名称和该函数的参数作为输入,进行一些状态检查,使用参数调用函数,进行更多状态检查和然后返回函数调用的结果。包装器不应该知道函数,它的参数/参数类型或它们的数量,或者返回值,用户必须正确理解;它应该只是透明地通过它们。
我得到了getattr(conn.root, function)()
调用函数的模式,但我的 Python 专业知识在填充参数时用完了。我已经阅读了有关使用*arg
and的各种帖子**kwarg
,尤其是这篇文章,这表明我想要做的事情要么困难要么不可能。这是正确的吗?如果是这样,如果我确保所有函数参数都是关键字参数,是否会有一个可行的方案?
我确实拥有这个接口的两端(调用者和被调用者),所以我可以安排对所有函数参数进行字典化,但如果我可以避免的话,我宁愿不要让我的 API 太奇特。
编辑:在链接的远程端被调用的东西是一个具有非常普通方法的类,例如;
def exposed_a(self)
def exposed_b(self, thing1)
def exposed_c(self, thing1=None)
def exposed_d(self, thing1=DEFAULT_VALUE1, thing2=None)
def exposed_e(self, thing1, thing2, thing3=DEFAULT_VALUE1, thing4=None)
def exposed_f(self, thing1=None, thing2=None)
...其中每个参数(和返回值)的类型可以是字符串、字典、数字或列表。