我试图了解如何使用 Python 进行 RPC 调用。我有一个愚蠢的服务器,它定义了一个类并公开了一个创建该类实例的方法:
# server.py
class Greeter(object):
def __init__(self, name):
self.name = name
def greet(self):
return "Hi {}!".format(self.name)
def greeter_factory(name):
return Greeter(name)
some_RPC_framework.register(greeter_factory)
以及想要获取以下实例的客户端Greeter
:
# client.py
greeter_factory = some_RPC_framework.proxy(uri_given_by_server)
h = greeter_factory("Heisemberg")
print("Server returned:", h.greet())
问题是我没有找到允许返回用户定义对象实例的框架,或者只返回带有对象属性的字典(例如,Pyro4)。
过去我使用过 Java RMI,如果需要,您可以在服务器上指定一个代码库,客户端可以在其中下载已编译的类。Python有这样的东西吗?也许某些框架可以将对象与类字节码一起序列化,以让客户端拥有该类的完整工作实例?