如何在python中使用jsonrpclib将功能注册为类,而不是一个接一个注册?

2024-04-20 13:40:30 发布

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

在jsonrpclib docs中,一个接一个的register函数如下:

def foo():
    pass

def bar():
    pass

server = SimpleJSONRPCServer(("localhost", 8000))
server.register_multicall_functions()
server.register_function(foo, 'foo')
server.register_function(bar, 'bar')

它可以工作,但不能Python。寄存器功能一个接一个是复杂的。在

是否有一些例子可以同时以类或其他python方式注册函数。 例如:

^{pr2}$

Tags: 函数registerlocalhostdocsserverfoodefbar
1条回答
网友
1楼 · 发布于 2024-04-20 13:40:30

我想到了一个主意。最重要的是dir()内置函数。在

# api.py
def foo():
    pass

def bar():
    pass


# main.py
import api

def register_api(server, api_obj):
    methods = dir(api_obj)
    apis = filter(lambda m: not m.startswith('_'), methods)
    [server.register_function(getattr(api_obj, api)) for api in apis]

def main():
    endpoint = (LISTEN_ADDR, LISTEN_PORT) 
    server = SimpleJSONRPCServer(endpoint)
    register_api(server, api)
    server.serve_forever()

相关问题 更多 >